D'après mes recherches, il semble que tous les gestionnaires de paquets insistent pour être utilisés en tant qu'utilisateur privilégié et doivent être installés dans /
.
Généralement, ce que j'aime faire, c'est créer un compte jetable, compiler des logiciels et installer $HOME
pour ce compte. Je peux essayer diverses configurations puis, une fois terminé, il suffit de détruire le compte.
Cependant, compiler un logiciel devient fastidieux.
Mon expérience est vraiment juste limitée à yum
, mais je ne comprends pas pourquoi je ne serais pas capable de déposer un fichier repo ~/etc/yum.repos.d
et de laisser yum tout installer dans un compte personnel.
Y a-t-il une raison pour laquelle les gestionnaires de paquets doivent être utilisés en tant qu'utilisateur privilégié pour installer le logiciel?
/bin
) ou il peut supposer qu'il est installé à l'emplacement spécifié par --prefix. Bien que ces derniers puissent être contournés par ces projets, les premiers nécessitent des correctifs sur le code source./
Cela ressemble à une exigence qui pourrait être justifiée il y a peut-être 30 ans, mais pas maintenant. Par exemple, leenv
programme ne vise- t-il pas à résoudre ce type de problèmes? Si ce n'est pas le cas, il est facile de créer un schéma permettant de configurer n'importe quel programme binaire pour rechercher d'autres fichiers binaires dans des emplacements spécifiques./etc
ou (selon mes connaissances)/usr/lib/<packagename>/
ou/usr/libexec/<packagename>/
./usr/share
peut être modifié par les variables XDG qui ont été publiées au cours de ce siècle et ne sont pas nécessairement adoptées pour les programmes plus anciens.Il y a un projet de gestionnaire de paquets - Nix - avec une idée fondamentale intéressante (un gestionnaire de paquets " fonctionnel "), qui prend également en charge une opération par utilisateur:
A NOTE, JE VEUX AJOUTER:
Nix
devrait être utilisable dans un système de type Unix de votre choix (par exemple, une distribution Linux).Il existe également une grande collection de packages associés pouvant être installés avec le gestionnaire de packages Nix - Nixpkgs --built pour un certain nombre de plates - formes :
et une distribution associée - NixOS :
et un système de construction "continu" associé - Hydra .
la source
nix
etguix
. Comme je me sers vraimentnix
de mon travail, je veux savoir si je pourrais envisagerguix
une autre implémentation de l'outil dont j'ai besoin. Puis-je lire un résumé des différences quelque part? Peut-être pourriez-vous même écrire une réponse avec un tel résumé ici, en annonçant une autre solution alternative?Tout d'abord, c'est dû aux dépendances. Certains paquets peuvent ne pas être installés par l'utilisateur, comme PolicyKit. Par conséquent, il exigerait une charge supplémentaire pour le conditionneur qui donne son temps libre et l'installation du programme est généralement aussi simple que la dactylographie
sudo
(station mono-utilisateur) ou un administrateur ennuyeux.Il y a des options pour installer dans $ HOME
./configure --prefix=$HOME/sandbox --enable-cool-feature && make all install
(ou varitations comme jhbuild).la source
J'utilise JuJu, ce qui permet d'avoir une très petite distribution Linux (contenant uniquement le gestionnaire de paquets) dans votre répertoire $ HOME / .juju.
Il vous permet d’avoir votre système personnalisé dans le répertoire personnel accessible via proot et, par conséquent, vous pouvez installer n’importe quel paquet sans privilèges root. Il fonctionnera correctement sur toutes les principales distributions Linux. La seule limitation est que JuJu peut être exécuté sur un noyau Linux avec la version minimum recommandée 2.6.32.
la source
Un autre modèle avec un modèle assez différent est 0install . Cela repose sur l'idée que vous n'installez pas vraiment de paquet, mais les exécutez simplement à partir d'un espace de noms global qui télécharge, compile si nécessaire et met en cache le logiciel que vous souhaitez utiliser.
la source
Si vous voulez compiler à partir du source et résoudre les dépendances vous-même, principalement pour que le gestionnaire de paquets gère les opérations de déploiement / annulation de déploiement / mise à niveau, jetez un coup d'œil à GNU Stow ou à la version légèrement améliorée de XStow . Grâce à eux, vous installez l’installation dans un répertoire distinct (généralement situé sous
$PREFIX/stow
), puis vous stockez les liens symboliques vers le logiciel à partir de votre préfixe réel. Cela facilite ensuite la suppression complète du logiciel. Je l'utilise avec succès pour gérer mon logiciel installé sur mesure dans mon université.la source
Les gestionnaires de paquets Linux classiques voient le monde comme un administrateur système… où la machine est une entité unique. Cela vous permet d'obtenir des réponses à des questions telles que "quels errata en suspens s'appliquent au système X" et "en quoi le système X et le système Y diffèrent-ils". Cela permet également à yum d'avoir "une histoire" qui soit utilisable, d'avoir des versions de rpmdb et de faire des choses comme "yum --security update" etc.
Certains gestionnaires de paquets, comme zero-install, essaient de voir le monde comme un utilisateur le ferait ... c'est-à-dire. À quelles applications ai - je accès?
Vous pensez peut-être que ce dernier modèle est meilleur, mais IMNSHO, il y a une raison pour laquelle vous n'avez pas entendu parler de l'installation nulle mais avez entendu parler de yum.
la source
Il y a un petit nouveau sur le bloc: « JuNest (Emprisonné utilisateur NEST) - L'Arc distro basé sur Linux qui fonctionne sur une distro Linux sans accès root. » @ https://github.com/fsquillace/junest L' avantage est qu'il n'introduit pas un nouveau type de format de paquet, donc après une installation très simple (minimum: environ 320M), le référentiel complet Arch Linux (plus de 13 000 forfaits ATM) est à portée de main.
la source
Les outils utilisés par Slackware, en particulier
installpkg
, peuvent. De la page de manuel:Cependant, je ne connais aucun des meilleurs serveurs pouvant le faire (p
slapt-get
. Ex. , Autant que je sache, ne peut pas le faire). En théorie, vous devriez être en mesure d'aliasinstallpkg
àinstallpkg --root ~/Apps
- cependant, je pense que la plupart des frontends exigent la racine à courir, ce qui va à l' encontre du point.la source
Je suggérerais http://linuxbrew.sh/
Il s’agit essentiellement d’une fourchette d’infusion pour macOS et contient des fichiers binaires précompilés destinés à être utilisés ...
Particulièrement idéal pour gérer les anciennes versions de gcc.
Si vous voulez vraiment installer à la main, un guide utile est http://www.linuxfromscratch.org/
la source
Yum doit écrire dans la base de données, qui appartient à root. Pour cette raison, vous ne pouvez pas l'utiliser en tant qu'utilisateur normal.
Vous pouvez essayer de décompresser des fichiers rpm (rpm2cpio package.rpm | cpio -idmv) dans un répertoire de votre choix.
Mais lorsque vous exécuterez votre programme, vous devrez prendre soin de modifier LD_LIBRARY_PATH afin de charger les bibliothèques dépendantes. En outre, cela ne prendra pas en charge les dépendances.
Exemple:
Ce qui précède n'a pas de bibliothèque dépendante, sinon vous devriez utiliser quelque chose comme:
la source