Potete aiutarmi con il mio problema di dipendenza del software?


12

Questa è una domanda canonica sulle dipendenze della compilazione e sulla gestione dei pacchetti.

Ho una domanda relativa alla compilazione di porte / software o all'installazione di RPM sul mio server * nix. Quando provo a farlo, ricevo molti messaggi sulle dipendenze mancanti.

La community di Server Fault può aiutare?

Risposte:


10

Benvenuti in Server Fault. In generale questo tipo di domanda non è in argomento qui. Si prevede che la maggior parte dei amministratori di sistema avrà già affrontato questo problema prima di diventare un amministratore di sistema attraverso armeggiare con le proprie stazioni di lavoro. Tuttavia, gli amministratori di sistema provenienti da uno sfondo di Windows potrebbero non aver affrontato questo, quindi ecco alcuni aspetti da considerare:

Perché non utilizzare un gestore pacchetti per installare software sul tuo server?

Gestori di pacchetti come yumo aptgestire queste dipendenze per te. Inoltre, possono anche essere utilizzati per gestire gli aggiornamenti del software sul server. La maggior parte delle versioni di * nix avrà un gestore pacchetti installato per impostazione predefinita, specialmente su VPS fornito con il sistema operativo preinstallato. Se sei davvero nuovo, utilizza uno di questi sul tuo sistema di produzione e salva le avventure nella compilazione o nell'installazione di RPM all'avanguardia per il tuo ambiente di test.

Ma mi viene richiesto di utilizzare un pacchetto più aggiornato di quello disponibile nel mio gestore pacchetti!

La maggior parte dei gestori di pacchetti può essere configurata per utilizzare repository diversi: è possibile che ce ne sia uno che fornisce la versione del pacchetto di cui hai bisogno e ti consente comunque di sfruttare le funzioni del gestore di pacchetti.

Il pacchetto di cui ho bisogno non è disponibile tramite nessun repository o gestore di pacchetti

In tal caso, probabilmente si fa necessario capire le dipendenze (o aspirare e usare una stalla / versione più comune del software). Probabilmente dovresti eseguire le seguenti operazioni in un ambiente di test e prendere appunti accurati su ciò che fai:

  • Assicurati di leggere la documentazione per il software che stai installando: questo probabilmente elencherà ciò che devi installare prima, ma non ciò che è necessario per quel software.
  • Usa il tuo gestore pacchetti per installare gli elementi necessari, nella maggior parte dei casi questi saranno disponibili.
  • Una volta completato, prova a installare.
  • Se vedi ancora messaggi sulle dipendenze mancanti, prendine nota e prova di nuovo a installarne il maggior numero possibile utilizzando il gestore pacchetti.
  • Se non viene rilevata una dipendenza, è necessario considerarla una sottoattività e trattarla in modo ricorsivo (trovare il tarball di origine, trovare dipendenze, installare).
  • È un processo iterativo.

Ho ancora problemi!

Se hai seguito tutti i passaggi precedenti e hai ancora problemi, potresti esserti imbattuto in uno strano problema con cui altri server server potrebbero essere felici di aiutarti. Crea una nuova domanda, fornendo dettagli su quale software stai tentando di installare, quale versione e i messaggi di errore esatti che stai vedendo.

Consulenza specifica per i principali sistemi di gestione dei pacchetti

Gestione dei pacchetti RPM (RHEL / Fedora e cloni) e DEB (Debian / Ubuntu e cloni)

  • yum whatprovides nomefile è un modo eccellente per trovare il pacchetto che fornisce un file o una libreria specifici su un sistema di tipo RHEL.
  • Non usare alla ./configure && make && make installcieca se possibile! La gestione dei pacchetti è stata inventata proprio per questo motivo per evitare il disordine imbarazzante e non sostenibile che risulta dall'installazione non rintracciabile di molti file in conflitto.
  • Molte librerie sono divise in due parti: binario (oggetti condivisi, ad esempio) e sviluppo (intestazioni). Pertanto, avresti bisogno di entrambi libfooe libfoo-devel(o -dev) pacchetti.
  • Prendi in considerazione l'utilizzo di fpm( https://github.com/jordansissel/fpm ) per convertire tarball in RPM e DEB accurati
  • Se stai arrotolando i tuoi pacchetti, SEI la persona responsabile dei loro aggiornamenti, test e manutenzione. Se non hai alcuna infrastruttura per questo, stai decisamente puntando troppo in alto.

Ricerca delle dipendenze per nome file per RPM

http://rpmfind.net è un buon posto per cercare i nomi dei pacchetti se si conosce il nome del file di cui si lamenta la procedura di installazione. Tuttavia, non è consigliabile abbinare e mescolare pacchetti di diverse distribuzioni.


Penso che sarebbe utile fornire una sezione che discute il problema delle dipendenze delle biblioteche che può essere un po 'più complicato da risolvere - ma io ho meno esperienza in questo - a qualcuno interessa contribuire?
Dunxd,

Gli articoli che consiglio vivamente includono i dettagli sugli RPM di src e su come mantenere un repository locale personalizzato. La creazione di file deb o rpm dovrebbe far parte della cintura degli strumenti di chiunque debba lavorare con requisiti di pacchetto insoliti.
Tim Brigham,

Potrebbe valere la pena estenderlo per toccare l'argomento delle pile di applicazioni e le loro insidie. La domanda "pacchetto più aggiornato" mi ha ricordato una recente .
Andrew B,

È un wiki della comunità, quindi sentiti libero di aggiungere cose o, naturalmente, fornisci la tua risposta :-)
dunxd
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.