Qual è la differenza tra yum, apt-get, rpm, ./configure && make install?


126

Sono nuovo di Linux e utilizzo CentOS. Mi sono imbattuto in quattro modi per aggiornare o installare il software.

Finora ho visto:

  • yum install [program]
  • apt-get install [program]
  • rpm -i [program].rpm
  • wget [program].tar.gz-> unpack-> ./configure-> make->make install

Quest'ultima è una vera seccatura, soprattutto proveniente da Windows, dove l'installazione di un programma è di solito un clic e una bella procedura guidata di installazione.

Quindi, le mie domande sono:

  • Perché ci sono così tanti modi diversi per farlo in Linux?
  • Quale mi consiglia di utilizzare e perché?
  • Esistono altri modi per installare programmi in Linux?

Inoltre, per quanto riguarda yumvs up2date. Non sono mai stato chiaro sulla differenza.
Josh

apt-getè per Debian, e davvero non dovrebbe presentarsi su CentOS ....
Kyle Strand,

Risposte:


114

Tutti questi strumenti installano software nel tuo sistema, ma funzionano su livelli diversi.

  • ./configure && make install

    L'esecuzione ./configure && make installcrea e installa le librerie o gli eseguibili direttamente dal codice sorgente.

    Il make installpassaggio in pratica copia semplicemente i file finali nel tuo sistema. Molte fonti hanno una make uninstallregola speciale per rimuoverle di nuovo, ma questo non è garantito e ovviamente funziona solo finché hai le fonti configurate in giro. Inoltre, questo non si occupa delle dipendenze richieste.

    Spesso è disponibile solo il codice sorgente per un determinato pacchetto, quindi questa è l'unica strada da percorrere. Inoltre, di ./configuresolito accetta molte opzioni che ti consentono di personalizzare il tuo pacchetto.

    Non essere in grado di scoprire quale software ha installato quale file e la mancanza di un modo affidabile per rimuoverli dal sistema sono le principali carenze di questo approccio.

  • RPM (Redhat Package Manager)

    rpminstalla software già configurato e compilato nel tuo sistema e viene fornito con una disinstallazione per sbarazzartene di nuovo. I pacchetti devono essere creati da qualcuno. Questa persona ha già deciso quali funzionalità includere e come integrare al meglio il pacchetto nel layout del sistema. Viene inoltre fornito un elenco di dipendenze.

    Dal momento che rpms sono utilizzati per molte distribuzioni lì, spesso vorrai assicurarti che questo rpm sia stato scritto per la tua distribuzione in modo che i percorsi di installazione, le dipendenze e altre cose di pulizia si integrino bene.

    Sui sistemi Debian, il formato del pacchetto equivalente è .debe l'installazione e il database sono gestiti dallo dpkgstrumento.

  • yum

    yumè un wrapper aggiuntivo in giro rpm. Mantiene il proprio database di file rpm disponibili per la distribuzione, generalmente nei repository online. Per le versioni stabili della maggior parte delle distribuzioni, tutti i pacchetti all'interno di quel database funzioneranno bene l'uno con l'altro. Questo database può essere cercato (ad es. Con yum search some_name).

    Risolverà anche automaticamente le dipendenze per te. I pacchetti (e con qualche aiuto in più le loro dipendenze) possono anche essere facilmente disinstallati.

    Sui sistemi Debian, il repository equivalente e gli strumenti per la risoluzione delle dipendenze sono forniti da Apt ( apt-gete aptitude).

Riassumendo: se vuoi solo un po 'di software, prova yumprima. Se non è disponibile lì, puoi provare a trovare un rpmpacchetto esistente . Se non ce ne sono o se hai dei requisiti speciali, crea dalla fonte.


praticamente quello che stavo per dire. aggiunto in una menzione degli equivalenti debian e ritoccato la formattazione.
Quack Quixote

2
@quack: grazie. Ma non possiamo semplicemente zittirci apt-geto è ancora raccomandato per qualcosa?
Benjamin Bannier,

2
hai ragione, l' attitudine è probabilmente la migliore da consigliare; ho incluso apt-get perché è ampiamente indicato e un lettore che non conosce attitudine potrebbe aver sentito parlare di apt-get .
Quack Quixote

4
Cosa c'è che non va in apt-get?
ricorsivo

5
@recursive: A un certo punto apt-getnon sono state registrate dipendenze automatiche e sono state lasciate indietro dopo una disinstallazione, mentre è stato aptitudeintrodotto il monitoraggio delle dipendenze corretto. Inoltre, ha anche fornito alcune funzionalità aggiuntive non disponibili in apt-get. Non ne sono sicuro, ma a un certo punto penso apt-gete aptitudedove sono stati aggiornati per utilizzare lo stesso backend avanzato che fornisce gran parte di tale funzionalità.
Benjamin Bannier,

5

Yum sono RPM sono la stessa cosa tranne che yum ottiene automaticamente i pacchetti dalla rete e li installa (usando rpm -i) in un solo passaggio. Dovrebbe essere usato quando possibile per facilitare l'aggiornamento. Utilizzare rpmsolo quando non è stato trovato alcun pacchetto yume utilizzare il makemetodo solo quando non è disponibile un pacchetto .rpm o è necessario modificare alcune opzioni di compilazione.

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.