web-dev-qa-db-fra.com

Installer Git avec un compte utilisateur non root

J'ai déjà configuré un référentiel Git sur GitHub et j'ai validé quelques modifications depuis ma machine Windows.

Mais demain, je devrai travailler dans ce référentiel à partir d'une machine exécutant Ubuntu avec des privilèges limités (c'est-à-dire pas de Sudo).

Existe-t-il une version portable de Git pour Linux? Ou une source qui me permet de compiler et d'installer Git uniquement pour l'utilisateur actuel?

44
BoppreH

Vous pouvez télécharger la source git et faire ./configure --prefix=/home/user/myroot && make && make install pour installer git dans votre répertoire personnel à condition d'avoir les outils de compilation. Si le package build-essential n'est pas installé (dpkg --list|grep build-essential), vous devrez également les installer dans votre répertoire personnel.

32
Scott

Je n'aime pas les réponses liées uniquement aux liens, mais ce lien j'ai suivi étape par étape sur une machine Fedora et cela a fonctionné sans modification. Très, très facile. Les binaires se retrouvent dans votre répertoire ~/bin. Vous téléchargez une archive tar, extrayez les sources, exécutez make et exécutez make install et c'est tout.

Comme l'indique l'auteur, les 2 prérequis sont gcc et ssh et si vous remplissez ces conditions, git devrait fonctionner pour vous en tant qu'utilisateur non root.

15
demongolem

Une réponse connexe est https://askubuntu.com/a/35 .

Je pourrais le faire fonctionner avec la troisième méthode proposée:

apt-get source git
cd git_vXXX
./configure --prefix=$HOME
make
make install

Je ne sais pas pourquoi, mais quand j'ai essayé d'installer à partir du téléchargement source depuis github, j'ai eu beaucoup de problèmes avec les dépendances manquantes

8
lib

Pour installer git et les dépendances à partir des sources, les éléments suivants peuvent être utiles.

Remplacez par l'emplacement où vous installez vos applications non root et envisagez de vérifier les dernières versions du code source.

wget https://curl.haxx.se/download/curl-7.47.1.tar.gz
tar -xf curl-7.47.1.tar.gz
mkdir <local_curl_dir>
cd curl-7.47.1
./configure --prefix=<local_curl_dir>
make
make install

wget http://downloads.sourceforge.net/expat/expat-2.1.0.tar.gz
tar -xf expat-2.1.0.tar.gz
mkdir <local_expat_dir>
cd expat-2.1.0
./configure --prefix=<local_expat_dir>
make
make install

wget https://github.com/git/git/archive/v2.6.4.tar.gz
tar -xf v2.6.4
mkdir <local_git_dir>
cd git-2.6.4
make configure
./configure --prefix=<local_git_dir>/git --with-curl=<local_curl_dir>/curl --with-expat=<local_expat_dir>/expat
make
make install
8
79E09796

C'est ce que j'ai fini par faire, l'astuce principale étant les drapeaux make:

wget -O git.tar.gz https://github.com/git/git/archive/v2.17.0.tar.gz
tar zxf git-2.17.0.tar.gz
mv git-2.17.0 git
cd git
make configure
./configure --prefix=`pwd` --with-curl --with-expat
# ./configure --prefix=`pwd`
# Make flags from https://public-inbox.org/git/CAP8UFD2gKTourXUdB_9_FZ3AEECTDc1Fx1NFKzeaTZDWHC3jxA@mail.gmail.com/
make NO_GETTEXT=Nope NO_TCLTK=Nope
make install NO_GETTEXT=Nope NO_TCLTK=Nope

Crédits:

  1. La réponse de 79E09796 ci-dessus était une bonne astuce, mais ne fonctionnait pas pour mon cas sur Cloudways et ne nécessitait pas de compiler curl et expat.

  2. Une adresse e-mail aléatoire que j'ai trouvée sur Internet: https://public-inbox.org/git/CAP8UFD2gKTourXUdB_9_FZ3AEECTDc1Fx1NFKzeaTZDWHC3jxA@mail.gmail.com/

5
bdombro