J'aimerais installer des progiciels similaires, apt-get install <foo>
mais:
- Sans
sudo
et - Dans un répertoire local
Le but de cet exercice est d’isoler les versions indépendantes de mon serveur d’ intégration continue .
Cela ne me dérange pas de compiler à partir des sources, si c'est ce qui est nécessaire, mais je préférerais évidemment l'approche la plus simple possible. J'ai essayé apt-get source --compile <foo>
comme mentionné ici, mais je ne peux pas le faire fonctionner pour des paquets comme autoconf. Je reçois l'erreur suivante:
dpkg-checkbuilddeps: Unmet build dependencies: help2man
Help2man est compilé dans un répertoire local, mais je ne sais pas comment en informer apt-get. Des idées?
MISE À JOUR : J'ai trouvé une réponse qui fonctionne presque à l' adresse https://askubuntu.com/a/350/23678 . Le problème, chroot
c'est que cela nécessite du sudo. Le problème apt-get source
est que je ne sais pas comment résoudre les dépendances. Je dois dire, chroot
semble très attrayant. Existe-t-il une commande équivalente qui ne nécessite pas sudo?
sudo
et dans un répertoire non système.Réponses:
En général, cela n’est pas faisable, car vous fouilleriez avec le système de dépendances d’apt.
Il y a deux solutions:
Installez le paquet source, changez-le dans le répertoire source, configurez et installez le paquet indépendamment des systèmes de conditionnement manuellement dans un répertoire de votre choix.
Cela n’a pas besoin de root, télécharge la source du paquet, le décompresse dans un répertoire du répertoire en cours. Vous pouvez ensuite accéder à ce répertoire, apporter des modifications à la source, configurer l'installation sur une autre cible, etc.
La configuration du répertoire d’installation auquel les programmes doivent appartenir dépend toutefois du programme en question. De nombreux programmes utilisent le
./configure --prefix localdir
pour cibler l'installation sur localdir; mais ce n'est de loin pas toujours le cas.Créez un environnement chroot dans lequel vous installerez les packages:
Vous avez maintenant créé une installation factice dans le répertoire myfancyinstall /
Vous pouvez utiliser apt-get install dans la cage de chroot pour installer ce que vous voulez.
la source
apt-get source
sans--compile
semble supprimer l'avertissement concernant les dépendances non résolues (me permettant de les résoudre moi-même)ar vx mypackage.deb
. Ensuite, analysez le contenu du paquet et découvrez comment l’installer manuellement.En utilisant un shell bash et en récupérant le fichier "package.deb" (en supposant que le nom du paquet est "package"), vous pouvez exécuter la commande suivante pour accomplir ce que vous voulez - installer le paquet de sorte que votre répertoire personnel soit traité de la même manière "/ "serait traité dans une installation normale.
C'est la commande:
Vous pourriez être confronté à des erreurs, telles que $ HOME / var / lib / dpkg / lock est manquant; il vous suffit donc de créer tous les fichiers manquants que vous obtiendrez des erreurs. L'installation devrait alors fonctionner sans sudo.
Notez que si "apt-get download" ne fonctionne pas, vous pouvez essayer "apt download" ou "apitutde download package".
si aucune des méthodes ne fonctionne, vous pouvez simplement télécharger le package manuellement à partir de http://packages.ubuntu.com/
Une autre méthode consisterait à exécuter la commande chroot avec le paramètre $ HOME, puis à l’installer de la même manière que ci-dessus, mais sans --root = $ HOME. cette commande vous amènerait dans un shell où "/" est votre $ HOME actuel. pour revenir en mode normal, n'oubliez pas de "quitter"
bonne chance.
la source
Si vous êtes sur un hébergeur partagé avec un
ssh
accès mais pas deapt-get
racine, etc. ou un système similaire restreint, ce qui suit peut vous convenir. Cela a fonctionné pour moi sur un système oùuname -a
est retourné quelque chose commeSMP Debian 4.9.65-3+deb9u2~bpo8+1 (2017-01-05) x86_64 GNU/Linux
la source