Como atualizar para o último git no debian 7?

14

Eu instalei o git através do apt-get no debian 7, o que me dá:

# git --version
git version 1.7.10.4

Gostaria de migrar para a versão mais recente do git. Eu tentei:

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

Mas isso dá os seguintes erros:

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

Eu também tentei seguir este guia:

link

mas eu ainda não consigo o último git, alguma sugestão?

    
por u123 12.09.2013 / 23:26

3 respostas

12

Atualizado em 2016-07-27: um wheezy-backports é agora disponível para o Git 1.9.1. As instruções ainda se aplicam para instalar uma versão mais recente ou para Jessie.

Quando uma versão mais recente de um pacote de backport não está disponível, você tem duas opções:

  1. Peça aos mantenedores do pacote para prepararem um backport. Não é garantido que funcione, mas alguns mantenedores estão certos sobre como fazer backports, então eu apenas tentei.

    Os e-mails dos mantenedores podem ser encontrados .

  2. Construa você mesmo a partir das fontes. Isso pode ser feito de duas maneiras:

    • Construa "como está" no tarball de origem. Se você escolher esta rota, certifique-se de configurar o sistema de compilação do Git para instalar tudo em ~/git ou /opt/git ou algo assim depois você terá um ótimo PITA removendo o que você instalou.

      O problema é que a maneira convencional de instalar o software Unix espalhando-o por todo o sistema de arquivos é sensata, mas apenas quando você tem algum tipo de registro que "sabe" qual arquivo pertence a qual pacote e vice-versa e sistemas de empacotamento. como o Debian faz exatamente isso. Se você fizer uma instalação "normal" de um pacote criado a partir das fontes, na maioria dos casos você não terá como desinstalar este software mais tarde (antes de usar checkinstall em vez de make install , mas este é realmente o último recurso). Por outro lado, se você configurar um pacote fonte para instalar tudo em um único diretório, você terá pequenas dificuldades para executar o software (seus diretórios "binários" não estarão no seu $PATH ), em troca, desinstalá-lo posteriormente será um -brainer - um único rm -rf /path/to/that/dir .

    • Faça backporting sozinho. Isso está mais envolvido, mas, em casos simples, pode funcionar apenas no IMO que vale a pena tentar.

      Basicamente você vai assim (um link para o arquivo .dsc é retirado da página do pacote na instável ) :

      # 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
      

      Verifique se você tem todas as dependências de compilação satisfeitas executando:

      $ dpkg-checkbuilddeps
      

      E instale tudo o que a ferramenta diz estar faltando no momento. Às vezes, um pacote pode se referir a uma versão de algo novo demais para estar disponível na distribuição para a qual você está retornando; neste caso, não há problema em tentar enganar e corrigir a versão de tal pacote no arquivo debian/control .

      Agora corrija a versão dos pacotes prestes a serem compilados. A melhor maneira de conseguir isso é fazer com que uma ferramenta faça a coisa certa:

      $ dch --bpo
      

      Ele adicionará uma entrada ao arquivo debian/changelog e abrirá o editor de texto de sua escolha para supervisioná-lo. Basta fechar o editor - a versão para os pacotes a serem construídos é obtida da entrada superior deste arquivo.

      Agora, vamos tentar criar:

      $ dpkg-buildpackage -uc -us -b
      

      Se você tiver sorte, neste ponto você terá um monte de novos e brilhantes pacotes Git .deb em .. , que você pode instalar usando dpkg -i <packagename> ... .

      (Corra debuild clean para se livrar do crud construído ou simplesmente remova o diretório git completamente. Você também pode querer remover o que quer que tenha instalado após rodar dpkg-checkbuilddep .)

      Infelizmente, se a construção falhar por algum motivo, é necessário certo conhecimento para tentar corrigir, mas isso está fora do escopo desta discussão.

por 13.09.2013 / 00:39
7

Você ainda pode usar o Git PPA para o Ubuntu Precise, dizendo ao apt para construir a partir da última fonte que encontrar lá. As distribuições são semelhantes o suficiente para que isso funcione bem.

Eu usei com sucesso em Raspbian (que é baseado em wheezy) para obter pacotes para armhf, mas deve funcionar para qualquer arquitetura.

Primeiro, adicione a chave GPG para o PPA:

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

Adicione o URL dos pacotes fonte ao apt:

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

Atualize o apt:

apt-get update

Instalar dependências de compilação:

apt-get build-dep git

Faça o download e crie o git a partir da fonte. Você pode querer fazer isso como um diretório temporário, já que o processo de construção cria um pouco de cruft:

apt-get -b source git

Instale o pacote que você acabou de construir e limpar (o git-core não é mais necessário):

dpkg -i git_*.deb git-man_*.deb
dpkg -P git-core
    
por 02.12.2013 / 19:58
7

Se você quer atualizar um pacote específico no Debian 7 (Wheezy), você tem a opção de usar backports simplesmente adicionando ao seu /etc/apt/sources.list as seguintes linhas:

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

Então, para instalar / atualizar git , execute os comandos:

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

Você também pode configurar backports em um arquivo separado em /etc/apt/sources.list.d/. Eu particularmente prefiro usar um arquivo /etc/apt/sources.list.d/backports.list .

    
por 27.11.2014 / 14:41