Comment installer des paquets sous Linux (CentOS) sans que l'utilisateur root automatique avec gestion des dépendances?
Est-il possible d'utiliser RPM ou YUM ou tout autre gestionnaire de paquets sous Linux, plus précisément CentOS, pour installer un package, soit déjà téléchargé ou de repo à un emplacement personnalisé, sans admin/root access?
J'ai essayé de construction à partir des sources, en utilisant cmake, configure, make, make install, etc, mais, il a fini par avoir tellement nombreuses dépendances, l'un après l'autre.
Ou est-il de meilleures solutions?
Vous devez vous connecter pour publier un commentaire.
Il est possible d'utiliser yum et rpm pour installer un paquet dans le dépôt de la distribution. Voici la recette:
Trouver le nom du package
Utilisation
yum search
.Télécharger
Télécharger le package et toutes ses dépendances à l'aide de
yumdownloader
(qui est disponible sur CentOS par défaut). Vous aurez besoin de passer--resolve
pour obtenir de la résolution des dépendances.yumdownloader
télécharge dans le répertoire courant, sauf si vous spécifiez un--destdir
.Choisir un préfixe emplacement
Il pourrait être
~
,~/centos
, ou~/y
. Si votre maison est lent, car il est sur un système de fichier réseau, vous pouvez le mettre dans/var/tmp/...
.Extraire tout .les paquets rpm
Extraire tout .les paquets rpm de votre choix préfixe de localisation.
rpm2cpio
sorties la .fichier rpm comme une .archive cpio sur la sortie standard stdout.cpio
lit depuis l'entrée standard stdin-i
signifie extraire (dans le répertoire courant)-d
moyen de créer du répertoire manquantVous pouvez éventuellement utiliser
-v
: - verboseConfigurer l'environnement
Vous aurez besoin de configurer la variable d'environnement
PATH
etLD_LIBRARY_PATH
pour les paquets installés pour fonctionner correctement. Voici l'échantillon correspondant de mon~/.profile
:Remarque: Lorsque vous ssh vers un serveur, vous obtenez un shell de connexion. Si votre
.bashrc
n'est pas compilé par défaut. Bash exécute votre connexion dans le fichier de démarrage à la place. Ce fichier est le premier fichier existant dans la liste:.bash_profile
,.bash_login
et.profile
(voir bash de la documentation sur les fichiers de démarrage). Si, pour une raison obscure, vous souhaitez configurer votre environnement de votre.bashrc
plutôt que de votre identifiant ou votre fichier de démarrage, vous aurez à la source de l'ex de ce dernier.Maintenant, si vous voulez installer un grand nombre de paquets de cette façon, vous pouvez automatiser le processus. Si oui, jetez un oeil à ce référentiel.
TL;DR l'Utilisation Miniconda, conda-forge est incroyable.
J'ai essayé pendant une longue période pour obtenir un gestionnaire de paquet pour bien fonctionner sur CentOS, mais sans succès. Le meilleur que je pouvais faire était d'installer une Gentoo Préfixe à l'emplacement correct sur un autre CentOS avec accès à la racine, puis scp, une
.tar.xz
de l'ensemble de l'installation pour le serveur cible (seul moyen pour obtenir un bon de gcc pour Gentoo Préfixe). Je pourraisemerge
(build & installer les packages sur le serveur cible, mais continuaient à frapper des problèmes avec les habitants et les autorisations.J'ai récemment réalisé un utilisateur de l'installation de certains intéressant de packages à l'aide conda. Voici comment l'installer à partir de la ligne de commande:
Si comme moi, votre dossier de base est hébergée sur un disque distant (un système de fichiers réseau), vous pourriez voulez pas l'installer dans votre dossier d'accueil, de sorte que vous pouvez utiliser quelque chose comme
mkdir /var/tmp/lo
puis spécifiez un dossier d'installation comme/var/tmp/lo/da
lors de l'installation.Vous serez également invité à ajouter, disons
/var/tmp/lo/da/bin
à votre CHEMIN d'accès dans votre .bashrc, mais quand vous en ssh sur un serveur, vous obtenez un shell de connexion, si votre.bashrc
n'est pas compilé par défaut. Ainsi, vous aurez besoin d'utiliser votre.bash_profile
/.bash_login
/.profile
(voir bash de la documentation sur les fichiers de démarrage) pour ajouter la ligne ou à la source de votre.bashrc
.Vous serez alors en mesure d'installer tout un tas de paquets, mais peut-être pas tous ceux que tu voulais. La plupart du temps, si il n'est pas dans le canal par défaut, il sera dans
conda-forge
. Vous pouvez vérifier s'il existe des forfaits dehttps://anaconda.org/search?q=
conda install gcc
conda install zlib
conda install make
conda install cmake
conda install git
conda install -c conda-forge fish
conda install -c ActivisionGameScience zsh
conda install -c conda-forge tmux
da/lib
dossier et faire un lien symboliqueln -sT libtinfow.so.6.1 libtinfo.so.6
D'autres gestionnaires de paquets, j'ai essayé de l'utiliser après conda:
Linuxbrew
J'ai pensé qu'il serait facile à installer homebrew (linuxbrew), mais leurs sources de désordre et de l'utilisation codée en dur chemin d'accès absolu à l'interpréteur ruby, qui échoue parce que ce n'est pas la dernière version et ainsi de suite et ainsi de suite et j'ai renoncé.
Nix
Nix, vous utilisez le /nix dossier. Ils codée en dur elle aussi, et il est difficile de sed correctement de chaque téléchargement, il doit le faire lors de l'installation (sans parler des mises à jour).
Gentoo Préfixe
J'attends de Gentoo Préfixe pour être plus facile à installer directement maintenant que nous gcc peut être utilisé sur le serveur cible. -- Ok, j'ai essayé, mais a rencontré des autorisations de bugs lors de l'installation (2018-09-28):
PkgSrc
Je vais essayer de pkgsrc maintenant. -- Utilisation (plus) de la version 64-bit EL 6.x si sur CentOS 6 ou si vous rencontrez (G)version de la LibC des problèmes avec le 7.x un. - Pas de chance, pkgsrc dur codes
/usr/pkg/sbin
et/usr/pkg/bin
. Donc il ne peut pas être utilisé en tant qu'utilisateur, sauf peut-être mettre en place un fakechroot de l'environnement. Mais je n'ai jamais fait ça et j'attends de problèmes d'utilisation.S'il vous plaît commentaire/réponse si vous arrivez à l'installation de tout autre gestionnaire de paquets.
Cette réponse par boucle d'or ressemble à ce que vous recherchez.
https://unix.stackexchange.com/a/61295
Il n'est pas encore une jolie processus, mais semble plus facile que de construire à partir de la source.
Sinon, vous voudrez peut-être regarder dans le non-racine gestionnaires de paquets comme une alternative à yum.
Oui, il est. Si le logiciel est emballé dans du repos. Et admin installé
PackageKit-command-pas-trouvé paquet.
Voir:
https://fedoraproject.org/wiki/Features/PackageKitCommandNotFound