Errore: è necessario inserire alcuni URI "di origine" nell'elenco di fonti


107

Sto cercando di installare PIL un modulo Python su Ubuntu

Ho prima bisogno di installare un pacchetto chiamato python-imaging usando il seguente comando

sudo apt-get build-dep python-imaging

Quando provo a farlo, ottengo l'errore

E: You must put some 'source' URIs in your sources.list

Ho visto questa domanda che mostra come risolvere tramite la GUI ma sto usando la riga di comando. Qualcuno sa come posso correggere questo errore ..?

AGGIORNAMENTO: Sulla base delle risposte seguenti ho aggiornato il mio elenco di pacchetti ma ora ricevo questo errore. Non sono sicuro che sia correlato, in caso contrario inizierò una nuova domanda poiché non riesco a trovare un riferimento all'errore da nessuna parte.

E: Build-Depends dependency for python-imaging cannot be satisfied because candidate version of package python-all-dev can't satisfy version requirements  

Il primo messaggio di errore è abbastanza confuso. Viene visualizzato anche se ci sono ALCUNE fonti nel file mentre il messaggio implica che non ci sono affatto fonti. Quello che il messaggio prova a dire è che devi AGGIUNGERE una fonte che contiene le informazioni.
Sören,

Risposte:


103

software-properties-gtk opzione "Codice sorgente"

Lo consiglio per il desktop:

software-properties-gtk

quindi nella scheda "Software Ubuntu" fai clic su "Codice sorgente":

inserisci qui la descrizione dell'immagine

Questo ha aggiunto alcune deb-srcrighe sotto /etc/apt/sources.list, e ora posso farlo sudo apt-get build-dep <package>.

Non sono riuscito a trovare un metodo CLI pulito, quindi creo questa segnalazione di bug: https://bugs.launchpad.net/ubuntu/+source/apt/+bug/1802718

Testato su Ubuntu dal 16.04 al 18.04.

Metodo CLI

Lo consiglio per le immagini Docker:

sudo cp /etc/apt/sources.list /etc/apt/sources.list~
sudo sed -Ei 's/^# deb-src /deb-src /' /etc/apt/sources.list
sudo apt-get update

Testato sull'immagine Docker di Ubuntu 18.04. Dopo questa modifica, posso ad esempio fare con successo:

sudo apt-get build-dep hello

e prima della modifica non è riuscito con l'errore:

E: You must put some 'source' URIs in your sources.list

Precedentemente menzionato su: https://askubuntu.com/a/1011675/52975 vai e vota la risposta.

Si noti tuttavia che il /etc/apt/sources.listfile contiene righe come:

# deb http://archive.canonical.com/ubuntu bionic partner
# deb-src http://archive.canonical.com/ubuntu bionic partner

ciò significa che quanto sopra sedconsentirebbe fonti ma non fonti per alcuni tipi di pronti contro termine. Non penso che importi molto comunque.


5
Questo ha funzionato per me con Ubuntu 16.04
O Duan il

2
Risolto anche per me su Ubuntu 18.04
kramer65,

2
@kilgoretrout "com'è la risposta accettata" Perché i risultati della ricerca di Google superano la semantica della domanda esatta.
Ciro Santilli 7 改造 中心 法轮功 六四 事件

1
Molto bello! Devi amare sed!
Esben Eickhardt,

1
lavorando nel 19.04
Haris il

50

È possibile modificare direttamente l'elenco delle fonti ( /etc/apt/sources.list). Penso che sia necessario aggiungere / decommentare queste righe:

deb-src http://archive.ubuntu.com/ubuntu trusty main restricted #Added by software-properties
deb-src http://gb.archive.ubuntu.com/ubuntu/ trusty restricted main universe multiverse #Added by software-properties
deb-src http://gb.archive.ubuntu.com/ubuntu/ trusty-updates restricted main universe multiverse #Added by software-properties
deb-src http://gb.archive.ubuntu.com/ubuntu/ trusty-backports main restricted universe multiverse #Added by software-properties
deb-src http://security.ubuntu.com/ubuntu trusty-security restricted main universe multiverse #Added by software-properties
deb-src http://gb.archive.ubuntu.com/ubuntu/ trusty-proposed restricted main universe multiverse #Added by software-properties

L'ho risolto disabilitando l'opzione del codice sorgente e salvando una copia del file sources.list, quindi abilitando l'opzione del codice sorgente, salvando un'altra copia, quindi eseguendo diffsu entrambi.

È possibile che si desideri modificare il prefisso http://gb.con il prefisso delle altre fonti nell'elenco (quindi utilizza il mirror repository più vicino) e si può anche ignorare il #Added by software-properties.

Dopo la modifica sources.list, esegui sudo apt-get updateprima di provare a reinstallare.

Il completo diffpuò essere trovato qui


Un altro modo è di generarne uno nuovo. Un metodo per ottenere un elenco completo di fonti è utilizzare questo sito: https://repogen.simplylinux.ch/


7
"Dopo aver modificato sources.list, esegui sudo apt-get update prima di provare a installarlo di nuovo." - Era la chiave, grazie!
Kaushal Modi,

9
sudo sed -i -e 's / # deb-src / deb-src /' /etc/apt/sources.list
Vincent

1
grazie amico per ricordarmelo$ sudo apt update
christianbueno.1,

@ Il commento di Vincent è stato abbastanza per me e super pulito
kilgoretrout,

27

modificare /etc/apt/sources.list

sudo nano /etc/apt/sources.list

Quindi rimuovere #o aggiungere linee con deb-src $url, ad esempio:

deb http://ch.archive.ubuntu.com/ubuntu/ saucy main restricted
deb-src http://ch.archive.ubuntu.com/ubuntu/ saucy main restricted

Oppure copia dalle linee esistenti, ad es

deb blah blah
deb-src exact same blah blah

Quindi eseguire:

sudo apt-get update

Consulta https://help.ubuntu.com/community/Repositories/CommandLine per ulteriori informazioni.


17
exec sudo apt-get updatedopo aver modificato il sources.listfile
abidibo il

4

Ecco la soluzione da riga di comando

cat /etc/apt/sources.list | grep deb-src  #  see what will get changed

output tipico di cmd sopra

# deb-src http://us.archive.ubuntu.com/ubuntu/ bionic main restricted
# deb-src http://us.archive.ubuntu.com/ubuntu/ bionic-updates main restricted
# deb-src http://us.archive.ubuntu.com/ubuntu/ bionic universe
# deb-src http://us.archive.ubuntu.com/ubuntu/ bionic-updates universe
# deb-src http://us.archive.ubuntu.com/ubuntu/ bionic multiverse
# deb-src http://us.archive.ubuntu.com/ubuntu/ bionic-updates multiverse
# deb-src http://us.archive.ubuntu.com/ubuntu/ bionic-backports main restricted universe multiverse
# deb-src http://archive.canonical.com/ubuntu bionic partner
# deb-src http://security.ubuntu.com/ubuntu bionic-security main restricted
# deb-src http://security.ubuntu.com/ubuntu bionic-security universe
# deb-src http://archive.ubuntu.com/ubuntu bionic main universe restricted multiverse
# deb-src http://security.ubuntu.com/ubuntu bionic-security multiverse

se stai cambiando le righe sopra, il che è sempre vero su una nuova installazione di Ubuntu, quindi emetti:

sudo sed -i~orig -e 's/# deb-src/deb-src/' /etc/apt/sources.list   

che esegue un backup del file di input, quindi una ricerca di deb-src commentato in cui rimuove il commento per rendere attive quelle righe ... in seguito all'aggiornamento dei metadati locali consentirà alla macchina di conoscere nuove categorie di pacchetti ubuntu

sudo apt-get update

ora emetti ancora una volta il comando originale che non è riuscito con:

E: You must put some 'source' URIs in your sources.list

1
Puoi saltare il cp e usarlo -i~origcon sed per fare in modo che sed esegua il backup.
muru,

3

Per Ubuntu 16.04, ho apportato con successo questi aggiornamenti a sources.list:

$ sudo diff /etc/apt/sources.list /etc/apt/sources.list.bkp 

6c6
< deb-src http://au.archive.ubuntu.com/ubuntu/ xenial main restricted
---
> # deb-src http://au.archive.ubuntu.com/ubuntu/ xenial main restricted

19c19
< deb-src http://au.archive.ubuntu.com/ubuntu/ xenial universe
---
> # deb-src http://au.archive.ubuntu.com/ubuntu/ xenial universe

39c9
< deb-src http://au.archive.ubuntu.com/ubuntu/ xenial-backports main restricted universe multiverse
---
> # deb-src http://au.archive.ubuntu.com/ubuntu/ xenial-backports main restricted universe multiverse

53c53
< deb-src http://security.ubuntu.com/ubuntu xenial-security multiverse
---
> # deb-src http://security.ubuntu.com/ubuntu xenial-security multiverse

2

In Linux Mint (I am on version 18) puoi andare su Software Sources (cercalo nel menu di avvio o aprilo da un terminale con software-sources). Lì, nella prima scheda, troverai una casella di controllo Abilita repository di codice sorgente . Se lo abiliti, il programma inserirà le righe corrette nel tuo /etc/apt/sources.list.d/official-source-repositories.listfile. Basta non dimenticare di sudo apt-get update(o premere Aggiorna la cache nelle Sorgenti software) dopo.


0

Con la versione 14.04 e successive, esiste un modo più semplice e rapido per attivare i repository di codice sorgente:

sudo add-apt-repository -s

Riferimento: man add-apt-repository

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.