Il y a un serveur sur lequel je travaille, exécutant une ancienne version de Linux. Je n'ai pas d'accès root au système, donc je voulais construire une version plus récente d'un outil que j'utilise beaucoup (Vim 7.3). J'ai pensé que je le construirais et l'installerais dans ~ / bin. Cependant, il nécessite des fichiers de développement ncurses qui ne sont pas installés à l'échelle du système. J'ai trouvé le rpm ncurses-devel et extrait les dossiers 'lib' et 'include', où les placer et comment dire au script ./configure de les trouver afin de pouvoir configurer et construire correctement le paquet localement?
Edit: J'ai fini par contourner cela en installant le même système d'exploitation dans Virtualbox, en y construisant le package et en copiant les binaires.
Réponses:
J'ai fait cela assez fréquemment dans mon dernier travail - la solution qui semblait fonctionner le mieux était de créer un répertoire ~ / usr et d'utiliser l'argument --prefix pour pointer les scripts ./configure dans la bonne direction. Voici les étapes:
./configure --prefix=/home/<username>/usr
Cet arrangement a fonctionné pour moi dans la plupart des situations où j'avais besoin de construire des choses dans l'espace utilisateur. La partie la plus difficile est généralement de trouver et de construire toutes les dépendances dont vous avez besoin, mais cela nécessite simplement une recherche sur Google ou une utilisation judicieuse de la fonctionnalité «obtenir la source» de votre gestionnaire de paquets.
la source
${HOME}
au lieu de~
dans tous mes appels d'exportation, puis pkg-config était heureux et a pu trouver mes bibliothèques et packages installés par l'utilisateur.Normalement, vous devriez pouvoir reconfigurer et modifier le code pour définir un nouvel emplacement dans votre répertoire personnel ou un autre chemin pour toutes les bibliothèques et programmes ...
Mais, à mon humble avis, la façon la plus simple (si vous avez beaucoup d'espace) est d'utiliser chroot dans un sous-répertoire avec toutes les distributions Linux installées. Bien sûr, en tant qu'utilisateur normal, vous ne pouvez pas utiliser chroot , mais vous pouvez utiliser ces excellents outils: fakechroot et fakeroot
Pour créer le système de fichiers chroot, j'aime déployer un répertoire avec Debian (ou tout dérivé Debian comme ubuntu) en utilisant l' utilitaire debootstrap .
La procédure est donc simple (je n'entrerai pas dans les détails techniques, lisez les manuels de commande):
Si vous avez besoin de plus de détails, je pense que j'avais un script quelque part pour faire tout cela.
la source
Une autre solution à ce problème consiste à utiliser le préfixe Gentoo, comme le font les utilisateurs de MacOSX et d'autres plates-formes (solaris, AIX):
http://www.gentoo.org/proj/en/gentoo-alt/prefix/
Il compilera la pile Gentoo (avec portage) dans un emplacement $ PREFIX. Il utilise les packages Gentoo, la plupart des packages prennent en charge l'utilisation de ces paramètres.
Portage gardera une trace de toutes les dépendances, vous aurez la dernière version du logiciel, il a été testé par la communauté ...
la source
Si
prefix=/home/foo/usr
cela ne fonctionne pas, essayez:la source