GNU/Linux >> Linux Esercitazione >  >> Linux

Apt-get Build-dep non riesce a trovare un pacchetto sorgente?

Ho già seguito questa guida per disabilitare l'incolla del pulsante centrale del mouse sul mio Ubuntu 12.04.

Funziona come un incantesimo.

Ora sto cercando di ottenere lo stesso risultato sul mio Linux Mint 17. Quando provo a

sudo apt-get build-dep libgtk2.0-0

mi dà il seguente output:

Reading package lists... Done
Building dependency tree       
Reading state information... Done
Picking 'gtk+2.0' as source package instead of 'libgtk2.0-0'
E: Unable to find a source package for gtk+2.0

Per me sembra che apt-get stia in qualche modo "risolvendo" 'libgtk2.0-0' a 'gtk+2.0' , ma non trova nessun pacchetto con questo nome.

EDIT:
anche se ora sono in grado di compilare il programma (vedi la mia risposta), non so ancora cosa Picking 'gtk+2.0' as source package instead of 'libgtk2.0-0' dovrebbe significare. Qualsiasi approfondimento in merito sarebbe apprezzato, grazie!

Risposta accettata:

Come altri hanno già notato, assicurati che per ogni deb … voce in /etc/apt/sources.list e /etc/apt/sources.list.d/* , hai un deb-src … corrispondente iscrizione. Il resto della riga deve essere identico.

Il deb la voce è per i pacchetti binari (cioè pronti per l'installazione), il deb-src è per i pacchetti sorgente (cioè pronti per la compilazione). Il motivo per cui i due tipi di pacchetti sono separati è che vengono gestiti in modo molto diverso:i pacchetti binari hanno un meccanismo di rilevamento delle dipendenze e un elenco attualmente installato, mentre i pacchetti sorgente vengono tracciati solo in modo che possano essere scaricati comodamente.
Nota che quando si parla di repository di pacchetti, la parola sorgente significa due cose non correlate:un sorgente come in una posizione da cui scaricare i pacchetti e un pacchetto sorgente invece di un pacchetto binario.

libgtk2.0-0 è il nome di un pacchetto binario. È costruito da un pacchetto sorgente chiamato gtk+2.0 . Il motivo per cui i nomi dei pacchetti sorgente e binari non sempre corrispondono è che la creazione di un pacchetto sorgente può produrre più pacchetti binari; ad esempio, gtk+2.0 è il sorgente per 14 pacchetti in quanto è diviso in due librerie (libgtk2.0 , libgail ), pacchetti corrispondenti per creare programmi usando queste librerie (…-dev ), documentazione per sviluppatori (…-doc ), programmi complementari (libgtk2.0-bin ), ecc.

Puoi vedere il nome del pacchetto sorgente corrispondente a un pacchetto binario controllando Source: … riga nell'output di dpkg -s BINARY_PACKAGE_NAME (se il pacchetto è installato) o apt-cache show BINARY_PACKAGE_NAME .

Puoi elencare i pacchetti binari prodotti da un pacchetto sorgente con aptitude search '?source-package(^SOURCE_PACKAGE_NAME$) .

Il comando apt-get source scarica un pacchetto sorgente. Se gli dai un argomento che non è un pacchetto sorgente noto, lo cerca nel database dei pacchetti binari installabili e prova a scaricare il pacchetto sorgente corrispondente.

Correlati:Impossibile simulare la pressione del tasto Ctrl+Maiusc+Fn+F10 ?

Il comando apt-get build-dep segue lo stesso approccio per dedurre il nome di un pacchetto sorgente, quindi interroga il database del pacchetto sorgente per ottenere un elenco di pacchetti binari (l'elenco in Build-Dep: campo) e installa quei pacchetti binari.

La GUI di Software Sources ha una casella di controllo "abilita i repository con il codice sorgente" per i repository ufficiali, assicurati che sia spuntata. Se aggiungi manualmente repository di terze parti, assicurati di aggiungere entrambi deb-src e deb linee.


Linux
  1. Come trovare una versione del pacchetto in Linux

  2. Come creare pacchetti dal sorgente utilizzando CheckInstall

  3. Come impacchettare applicazioni open source come RPM

  4. pygrub:impossibile trovare la partizione contenente il kernel

  5. Impossibile installare yum mod_security – Nessun pacchetto mod_security disponibile [Risolto]

apt vs apt-get – Strumento pacchetto avanzato

Trova se un pacchetto è disponibile per la tua distribuzione Linux

Come scoprire se un pacchetto è installato o meno in Linux e Unix

Ubuntu E:Impossibile individuare il pacchetto mysql

E:Impossibile individuare il pacchetto python-pip su Ubuntu 18.04

Come scoprire la fonte di un segnale POSIX