¿Cómo actualizar al último git en debian 7?

14

He instalado git a través de apt-get en debian 7 que me da:

# git --version
git version 1.7.10.4

Me gustaría pasar a la última versión de git. Yo he tratado:

sudo apt-get install python-software-properties
sudo add-apt-repository ppa:git-core/ppa
sudo apt-get update
sudo apt-get install git

Pero eso da los siguientes errores:

Fetched 6,944 B in 0s (10.1 kB/s)
W: Failed to fetch http://ppa.launchpad.net/git-core/ppa/ubuntu/dists/wheezy/main/source/Sources  404  Not Found

W: Failed to fetch http://ppa.launchpad.net/git-core/ppa/ubuntu/dists/wheezy/main/binary-amd64/Packages  404  Not Found

También he tratado de seguir esta guía:

http://backports.debian.org/Instructions/

pero todavía no puedo obtener el último git, ¿alguna sugerencia?

u123
fuente
1
¿Por qué no compilar desde la fuente (el documento INSTALL tiene algo de ayuda en eso, si eres nuevo en él)?
nerdwaller
Descargaría el archivo directamente para el sitio web obtenido si la fuente del launchpad está rota.
Ramhound
2
¿Realmente lo necesitas? En la mayoría de los casos, no vale la pena instalar una versión más nueva. ¿Hay una característica particular en la nueva versión que necesita? ¿Qué versión tienes y cuál quieres instalar? De todos modos, no puedes usar PPA con Debian , son algo de Ubuntu.
terdon

Respuestas:

12

Actualizado 2016-07-27: un wheezy-backports ahora está disponible para Git 1.9.1. Las instrucciones aún se aplican para instalar una versión más reciente o para Jessie.


Cuando una versión más nueva de un paquete de backport no está disponible, tiene dos opciones:

  1. Pídale a los encargados de los paquetes que preparen un backport No se garantiza que funcione, pero algunos mantenedores son positivos acerca de hacer backports, así que solo lo intentaré.

    Los correos electrónicos de los mantenedores se podían encontrar allí .

  2. Constrúyalo usted mismo a partir de las fuentes. Esto podría hacerse de dos maneras:

    • Construir "tal cual" a partir del tarball fuente. En caso de elegir esta ruta, asegúrese de configurar el sistema de construcción de Git para instalar todo lo bajo ~/gito /opt/gito algo como esto lo contrario temprano tendrá un gran PITA eliminar lo ha instalado.

      El problema es que la forma convencional de Unix de instalar software extendiéndolo por todo el sistema de archivos es sensible, pero solo cuando tiene algún tipo de registro que "sabe" qué archivo pertenece a qué paquete y viceversa, y sistemas de empaque como Debian's haz exactamente esto. Si realiza la instalación "normal" de un paquete creado a partir de las fuentes, en la mayoría de los casos no tendrá forma de desinstalar este software más adelante (sin usarlo en checkinstalllugar de hacerlo make install, pero este es realmente un último recurso). Por el contrario, si configura un paquete fuente para instalar todo en un solo directorio, tendrá dificultades menores para ejecutar el software (sus directorios "binarios" no estarán en su $PATH), a cambio, desinstalarlo más tarde será obvio: una sola rm -rf /path/to/that/dir.

    • Haz backport a ti mismo. Esto es más complicado, pero en casos simples podría funcionar, así que vale la pena probarlo.

      Básicamente vas así ( .dscse toma un enlace al archivo desde el página del paquete en inestable ):

      # apt-get install devscripts
      $ mkdir ~/devel && cd $_
      $ dget http://ftp.de.debian.org/debian/pool/main/g/git/git_2.1.4-2.1.dsc
      $ dpkg-source -x git_2.1.4-2.1.dsc
      $ cd git
      

      Compruebe si tiene todas las dependencias de compilación satisfechas ejecutando:

      $ dpkg-checkbuilddeps
      

      E instale todo lo que dice la herramienta que falta actualmente. A veces, un paquete puede referirse a una versión de algo demasiado nuevo para estar disponible en la distribución a la que está realizando el backport; en este caso, está bien intentar engañar y corregir la versión de dicho paquete en el debian/controlarchivo.

      Ahora arregle la versión de los paquetes que están por construirse. La mejor manera de lograr esto es hacer que una herramienta haga lo correcto:

      $ dch --bpo
      

      Agregará una entrada a la debian/changelog archivo y abrirá el editor de texto de su elección para supervisarlo. Simplemente cierre el editor: la versión de los paquetes que se crearán se toma de la entrada superior de este archivo.

      Ahora intentemos construir:

      $ dpkg-buildpackage -uc -us -b
      

      Si tienes suerte, en este punto tendrás un montón de nuevos .debpaquetes Git brillantes .., que puedes instalar usandodpkg -i <packagename> ... .

      (Ejecutar debuild cleanpara deshacerse de la basura construida o simplemente eliminar el gitdirectorio por completo. También es posible que desee eliminar lo que instaló después de ejecutardpkg-checkbuilddep ).

      Desafortunadamente, si la construcción falla por alguna razón, se necesita cierto conocimiento para intentar solucionarlo, pero esto está fuera del alcance de esta discusión.

kostix
fuente
@Dereckson, gracias por su sugerencia de edición. ¡Se lo agradezco! Pero, ¿puedes explicar por qué dgetno es necesario? Su objetivo es brindarle todos los archivos que constituyen el paquete fuente para que realmente tenga algo que desempaquetar, ajustar y compilar. Obtener solo el .dscarchivo único hará justamente eso, pero faltarán los tarballs de origen y de debianización.
kostix
Oh, mi culpa La secuencia de comando me engañó, ya que solo el archivo git_2.1.4-2.1.dsc se usa luego explícitamente como argumento. Pensé que dpkg-source obtuvo las fuentes, pero de hecho requiere que los archivos de paquetes estén físicamente allí.
Dereckson
7

Todavía puede usar el Git PPA para Ubuntu Precise si le dice a apt que construya desde la última fuente que encuentre allí. Las distribuciones son lo suficientemente similares como para que esto funcione bien.

Lo utilicé con éxito en Raspbian (que se basa en wheezy) para obtener paquetes para armhf, pero debería funcionar para cualquier arquitectura.

Primero agregue la clave GPG para el PPA:

apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E1DF1F24

Agregue la URL de los paquetes fuente a apt:

cat > /etc/apt/sources.list.d/git.list << EOF
deb-src http://ppa.launchpad.net/git-core/ppa/ubuntu precise main
EOF

Actualizar apto:

apt-get update

Instalar dependencias de compilación:

apt-get build-dep git

Descarga y crea git desde la fuente. Es posible que desee hacer esto es un directorio temporal, ya que el proceso de creación crea un poco de cruft:

apt-get -b source git

Instale el paquete que acaba de construir y limpie (git-core ya no es necesario):

dpkg -i git_*.deb git-man_*.deb
dpkg -P git-core
Emning
fuente
7

Si desea actualizar un paquete específico en Debian 7 (Wheezy), tiene la opción de usar backports simplemente agregando a su /etc/apt/sources.list las siguientes líneas:

deb http://cloudfront.debian.net/debian wheezy-backports main
deb-src http://cloudfront.debian.net/debian wheezy-backports main

Luego, para instalar / actualizar git , ejecute los comandos:

$ aptitude update
$ aptitude -t wheezy-backports install git

También puede configurar backports en un archivo separado en /etc/apt/sources.list.d/. Particularmente prefiero usar un archivo /etc/apt/sources.list.d/backports.list .

ramsvidor
fuente