Perché alcuni pacchetti usano 'make install' mentre altri usano 'sudo make install'


8

Di recente ho installato il codificatore LAME sul mio server per convertire wav in mp3 e questo ha funzionato ./configure; make; make install.

Ho quindi provato a installare il codificatore OGG e questo richiede './configure, make, sudo make install' - cosa che non posso fare, dal momento che non ho un VPS (e preferirei non pagare $ 15 al mese per una VPN solo per installare un codec).

Sono nuovo in tutto questo e capisco che sudo ti dia le autorizzazioni, ma ho cercato di scoprire perché esattamente alcuni make installrichiedono l'accesso sudo e altri no. Non ho ancora trovato la risposta.


Dovresti essere in grado di cambiare il Makefile (o qualche modello da cui il Makefile è generato) o passare le opzioni della riga di comando a qualcosa (probabilmente ./configure) per farlo installare in una directory diversa (presumibilmente a cui non hai bisogno sudodi accedere ).

Risposte:


7

Di solito cerco di eseguirlo senza sudocomunque - a volte funziona. A volte i creatori di pacchetti pensano che sudosia necessario, lo usano a causa delle loro preferenze o altrimenti scelgono di installare cose in aree non utente del sistema. A volte questo è necessario, ma molte volte non lo è.

L'altro motivo comune che vedo per l'uso sudoè nei post di blog di terze parti che spiegano come installare il software e invece di fare il possibile e spiegarti come installarlo senza sudoprivilegi, ti dicono di usare sudoperché la persona scrivere il post lo usa semplicemente sudoper tutto, il che non è proprio una buona idea.

Teoricamente, l'unica ragione per cui un pacchetto dovrebbe richiedere sudoè se ha bisogno (o decide) di installarsi in / altrimenti modificare aree del sistema che possono essere modificate solo tramite l'accesso dell'amministratore.

In generale, sempre meno pacchetti lo stanno ancora facendo, poiché sudoaumenta la necessità per gli utenti di installare alcuni software senza accesso.


2
La maggior parte dei pacchetti dovrebbe avere opzioni di configurazione da qualche parte in modo da poterle installare in altre posizioni. Usarli potrebbe richiedere un po 'più di sforzo, ma se non ci riesci sudoè quello con cui sei bloccato.

6

Dipende se lo stai installando per te o per tutti gli utenti. (Principalmente. Alcune cose come i moduli del kernel richiedono l'accesso come root indipendentemente da chi utilizzerà le funzionalità finali.)

La maggior parte dei programmi che forniscono uno ./configurescript accetta anche un --prefix=~/bino --prefix=~/Local/così che è possibile installarlo nella directory home. Non tutti i programmi forniscono un ./configure, ma la maggior parte fornisce alcuni meccanismi Makefileche consentono di configurare la destinazione dell'installazione.

Quindi: le tue librerie / programmi sono per te o per tutti gli utenti sul tuo sistema?


Sono solo per me da usare .. e, brillante! .. Ho usato ./configure --exec-prefix = / home / username / cartella --prefix = / home / nomeutente / cartella e sembra che abbia passato ok senza sudo (cosa che non ha usato solo con ./configure) per libogg, libvorbis, ha qualche problema con libtheora e vorbis-tools ma non è ancora sicuro di cosa si tratti. Dovrei essere in grado di ottenerlo però. Grazie!

3
Potrebbe essere necessario utilizzare un'opzione della riga di comando come --theora-path=/home/username/folderquando si compilano altri programmi - assicurarsi di leggere i READMEfile o simili per sapere quali variabili potrebbero dover essere modificate.
sarnold,

0

Si tratta principalmente di leggere / scrivere / eseguire permessi sui file. Il Sudo non ha diritti limitati.

Pensa a un account amministratore in Windows, rispetto a un account utente o guest con diritti limitati. Stessa cosa.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.