Pourquoi certains packages utilisent 'make install' tandis que d'autres utilisent 'sudo make install'

8

J'ai récemment installé l'encodeur LAME sur mon serveur pour convertir wav en mp3 et cela a fonctionné avec ./configure; make; make install.

J'ai ensuite essayé d'installer l'encodeur OGG et cela nécessite './configure, make, sudo make install' - ce que je ne peux pas faire, car je n'ai pas de VPS (et je préfère ne pas payer 15 $ par mois pour un VPN juste pour installer un codec).

Je suis nouveau dans tout cela, et je comprends que sudo vous donne des autorisations - mais j'ai essayé de savoir pourquoi certains ont exactement make installbesoin d'un accès sudo et d'autres pas. Je n'ai pas encore trouvé la réponse.

alexbooots
la source
Vous devriez être en mesure de modifier le Makefile (ou un modèle à partir duquel le Makefile est généré) ou de passer des options de ligne de commande à quelque chose (probablement ./configure) afin de le faire installer dans un répertoire différent (probablement celui auquel vous n'avez pas besoin sudod'accéder ).

Réponses:

7

Habituellement, j'essaie de l'exécuter sans sudoquoi que ce soit - parfois cela fonctionne. Parfois, les créateurs de packages pensent que cela sudoest nécessaire, ils l'utilisent en raison de leurs préférences ou choisissent autrement d'installer des éléments dans des zones non utilisateur du système. Parfois, cela est nécessaire, mais ce n'est souvent pas le cas.

L'autre raison commune que je vois pour l'utilisation sudoest dans des articles de blog par des tiers qui expliquent comment installer un logiciel, et plutôt que d'aller plus loin et de vous expliquer comment l'installer sans sudoprivilèges, ils vous disent d'utiliser sudoparce que la personne écrire le message utilise simplement sudopour tout, ce qui n'est pas vraiment une bonne idée.

Théoriquement, la seule raison pour laquelle un package devrait être requis sudoest s'il a besoin (ou décide) de s'installer dans / autrement modifier des zones du système qui ne peuvent être modifiées que via un accès administrateur.

De manière générale, de moins en moins de packages continuent de le faire, car le besoin pour les utilisateurs d'installer certains logiciels sans sudoaccès augmente.

jefflunt
la source
2
La plupart des packages doivent avoir des options de configuration quelque part afin que vous puissiez les installer dans d'autres emplacements. Leur utilisation peut nécessiter un peu plus d'effort, mais si vous ne le pouvez pas, sudoc'est ce avec quoi vous êtes coincé.
6

Cela dépend si vous l'installez pour vous ou pour tous les utilisateurs. (Généralement. Certaines choses comme les modules du noyau nécessiteront un accès root, peu importe qui utilisera les fonctionnalités finales.)

La plupart des programmes qui fournissent un ./configurescript acceptent également un --prefix=~/binou --prefix=~/Local/pour que vous puissiez l'installer dans votre répertoire personnel. Tous les programmes ne fournissent pas un ./configure, mais la plupart fournissent un mécanisme Makefilequi vous permet de configurer la destination d'installation.

Alors: vos bibliothèques / programmes sont-ils pour vous ou pour tous les utilisateurs de votre système?

sarnold
la source
Ils sont juste pour moi à utiliser .. et, génial! .. J'ai utilisé ./configure --exec-prefix = / home / username / folder --prefix = / home / username / folder et il semble avoir traversé ok sans sudo (ce qu'il ne faisait pas en utilisant uniquement ./configure) pour libogg, libvorbis, ont quelques problèmes avec libtheora et vorbis-tools mais ne sais pas encore de quoi il s'agit. Je devrais cependant pouvoir l'obtenir. Merci!
3
Vous devrez peut-être ensuite utiliser une option de ligne de commande comme --theora-path=/home/username/folderlors de la compilation d'autres programmes - assurez-vous de lire le READMEfichier ou des fichiers similaires pour savoir quelles variables doivent être modifiées.
sarnold
0

Cela revient principalement à lire / écrire / exécuter des autorisations de fichiers. Sudo n'a pas de droits restreints.

Pensez à un compte administrateur dans Windows, par opposition à un compte utilisateur ou invité avec des droits restreints. Même chose.

Cymbales
la source