Instala o git no servidor sem sudo

1

Estou tentando instalar o git em um servidor com um usuário que não tem acesso root. Eu vi muitos tutoriais que sugerem o uso de ./configure , mas quando eu baixei o último git zip do github, não havia tal arquivo. Aparentemente, deve funcionar apenas com make e make install , mas quando executo make , recebo erros:

In file included from credential-store.c:1:
cache.h:21: error: expected specifier-qualifier-list before 'z_stream'
make: *** [credential-store.o] Error 1

Aparentemente, isso tem a ver com zlib não sendo instalado. Eu posso baixar zlib , mas não tenho idéia de como obter git para saber onde eu o instalei. Pode haver outras dependências também, mas eu provavelmente posso lidar com elas de maneira semelhante.

Eu também gostaria de ter apenas o executável git sozinho em /home/user/bin sem outras pastas ou lixo. Existe alguma maneira que eu possa baixar o executável compilado? Porque isso também seria bom.

    
por Explosion Pills 19.07.2012 / 02:35

2 respostas

1

Embora não tenha atualmente tempo para fornecer uma resposta super detalhada, posso descrever uma possível estratégia para executar executáveis a partir de um pacote git pré-criado em seu diretório inicial. Esta resposta é destinada ao Debian, já que é o que você disse que está usando, mas o conceito básico é aplicável a outros sistemas operacionais e distribuições também.

Primeiro, vá para o link e analise as dependências do pacote git . Felizmente, você verá que git não tem tantos. A maioria dos importantes provavelmente já está instalada, talvez com exceção de libcurl3-gnutls e libexpat1 .

Em seguida, baixe o pacote binário .deb e extraia seu conteúdo (pesquise na web para descobrir como extrair um pacote .deb manualmente). Você encontrará um arquivo data.tar.gz . Extraia isso e você receberá os arquivos usr/bin/git* e usr/lib/git-core/* . Você pode colocar esses arquivos em algum lugar em seu diretório inicial. Agora, a parte crítica: /usr/bin/git chama vários programas "auxiliares" em /usr/lib/git-core e esse último caminho é codificado em /usr/bin/git . Felizmente, você pode substituir o valor codificado definindo a variável de ambiente GIT_EXEC_PATH , portanto, atualize seus dotfiles para apontar para onde você decidiu manter os vários arquivos /usr/lib/git-core .

Por fim, é possível que nem todas as dependências da biblioteca (e suas dependências, etc, etc) tenham sido instaladas em seu sistema (por exemplo, libcurl3-gnutls , libexpat1 ). Você também pode fazer o download dos pacotes binários para eles e extraí-los em seu diretório pessoal e, em seguida, ajudar git a localizá-los definindo a variável de ambiente LD_LIBRARY_PATH apropriadamente.

P.S. Eu provavelmente tive mais do que o meu quinhão de estar em sua posição, então o que eu descrevi acima é mais do que teórico. Mas trabalhar em torno desse tipo de problema é um pouco de arte negra, então normalmente haverá alguma agitação adicional envolvida. Boa sorte.

    
por 19.07.2012 / 08:26
0

Você tem um lote de trabalho pela frente. Você precisa ter certeza de que seu wget ou curl esteja disponível para você, pois você precisará de um ou outro para obter os tarballs necessários se os pacotes apropriados não estiverem instalados.

Crie um

/home/youruser/src directory ( mkdir -p /home/youruser/src ).

cd no diretório src e obtenha o código fonte para git

wget http://git-core.googlecode.com/files/git-1.7.11.2.tar.gz

Descompacte e faça

./configure --help

Isso mostrará todos os pacotes necessários, como expat, openssl, etc. Você terá que fazer o dowload de todos eles, construí-los e instalá-los em /home/youruser . Quando terminar, você terá /home/youruser/bin ao longo com vários diretórios necessários .

Por favor, leia o arquivo INSTALL no diretório untarred, e poste seu progresso.

    
por 19.07.2012 / 03:47