Error :: Vous devez mettre des URI 'source' dans votre fichier sources.list

107

J'essaye d'installer PIL un module python sur Ubuntu

Je dois d’abord installer un paquet appelé python-imaging en utilisant la commande suivante

sudo apt-get build-dep python-imaging

Quand j'essaie de faire cela, j'obtiens l'erreur

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

J'ai vu cette question qui montre comment résoudre le problème via l'interface graphique, mais j'utilise la ligne de commande. Est-ce que quelqu'un sait comment je peux corriger cette erreur ..?

UPDATE: Sur la base des réponses ci-dessous, j'ai mis à jour ma liste de paquets, mais je reçois maintenant cette erreur. Pas sûr que ce soit lié, sinon je vais commencer une nouvelle question car je ne peux trouver aucune référence à l'erreur.

E: Build-Depends dependency for python-imaging cannot be satisfied because candidate version of package python-all-dev can't satisfy version requirements  
david
la source
Le premier message d'erreur est assez déroutant. Il apparaît bien qu'il y ait QUELQUES sources dans le fichier alors que le message implique qu'il n'y a aucune source. Ce que le message essaie de dire, c'est que vous devez AJOUTER une source contenant les informations.
Sören

Réponses:

103

software-properties-gtk option "code source"

Je recommande ceci pour le bureau:

software-properties-gtk

puis sous l'onglet "Logiciel Ubuntu", cliquez sur "Code source":

entrez la description de l'image ici

Cela a ajouté quelques deb-srclignes sous /etc/apt/sources.list, et maintenant je peux le faire sudo apt-get build-dep <package>.

Je n'ai pas pu trouver de méthode CLI propre, alors je crée ce rapport de bogue pour ce dernier: https://bugs.launchpad.net/ubuntu/+source/apt/+bug/1802718

Testé sur Ubuntu du 16.04 au 18.04.

Méthode CLI

Je recommande ceci pour les images 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

Testé sur l'image Ubuntu 18.04 Docker. Après ce changement, je peux réussir par exemple:

sudo apt-get build-dep hello

et avant le changement il a échoué avec l'erreur:

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

Auparavant mentionné à l' adresse : https://askubuntu.com/a/1011675/52975, nous vous invitons à voter.

Notez cependant que le /etc/apt/sources.listfichier contient des lignes telles que:

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

ce qui signifie que ce qui précède sedpermettrait d'activer des sources, mais non des non-sources, pour certains types de pensions. Je ne pense pas que cela compte beaucoup cependant.

Ciro Santilli 改造 中心 六四 事件
la source
5
Cela a fonctionné pour moi avec Ubuntu 16.04
ou Duan
2
Je l'ai également résolu pour Ubuntu le 18.04.
kramer65
2
@kilgoretrout "comment se comporte la réponse acceptée", car les résultats de recherche Google dépassaient la sémantique exacte des questions.
Ciro Santilli a rejoint le forum
1
Très cool! Je dois aimer sed!
Esben Eickhardt
1
travaillant dans 19.04
Haris
50

Vous pouvez éditer /etc/apt/sources.listdirectement la liste des sources ( ). Je pense que vous devez ajouter / décommenter ces lignes:

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

J'ai résolu ce problème en désactivant l'option de code source, en enregistrant une copie du fichier sources.list, puis en activant l'option de code source, en enregistrant une autre copie, puis en exécutant diffles deux.

Vous voudrez peut-être remplacer le préfixe http://gb.par le préfixe des autres sources de votre liste (afin qu’il utilise votre miroir de référentiel le plus proche), et vous pouvez également ignorer le #Added by software-properties.

Après l’édition sources.list, lancez-le sudo apt-get updateavant de réessayer d’installer.

Le complet diffpeut être trouvé ici


Une autre façon est de générer un nouveau. Une méthode pour obtenir un fichier sources.list complet consiste à utiliser ce site: https://repogen.simplylinux.ch/

Wilf
la source
7
"Après avoir modifié sources.list, exécutez sudo apt-get update avant de tenter de réinstaller." - C'était la clé, merci!
Kaushal Modi
9
sudo sed -i -e '/ # deb-src / deb-src /' /etc/apt/sources.list
Vincent
1
merci mon pote, souviens-toi de moi$ sudo apt update
christianbueno.1
Le commentaire de Vincent était suffisant pour moi et super propre
kilgoretrout
27

Modifier /etc/apt/sources.list

sudo nano /etc/apt/sources.list

Puis supprimez #ou ajoutez des lignes avec deb-src $url, par exemple:

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

Ou copier à partir des lignes existantes, par exemple

deb blah blah
deb-src exact same blah blah

Puis lancez:

sudo apt-get update

Voir https://help.ubuntu.com/community/Repositories/CommandLine pour plus d'informations.

Panthère
la source
17
exec sudo apt-get updateaprès avoir édité le sources.listfichier
abidibo
4

Voici la solution en ligne de commande

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

sortie typique ci-dessus cmd

# 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

si vous voulez bien modifier les lignes ci-dessus, ce qui est toujours le cas sur une nouvelle installation d'ubuntu, lancez:

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

qui fait une sauvegarde du fichier d'entrée, puis une recherche commentée sur deb-src où elle supprime le commentaire pour rendre ces lignes actives ... après l'actualisation des métadonnées locales, votre machine sera informée des nouvelles catégories de paquets ubuntu

sudo apt-get update

lancez à nouveau votre commande originale qui a échoué avec:

E: You must put some 'source' URIs in your sources.list
Scott Stensland
la source
1
Vous pouvez ignorer le cp et utiliser -i~origavec sed pour faire la sauvegarde.
muru
3

Pour Ubuntu 16.04, j’ai réussi à mettre à jour 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
utilisateur3226232
la source
2

Dans Linux Mint (je suis sur la version 18), vous pouvez accéder à Sources de logiciels (recherchez-le dans le menu Démarrer ou ouvrez-le à partir d'un terminal avec software-sources). Dans le premier onglet, vous trouverez une case à cocher Activer les référentiels de code source . Si vous l'activez, le programme mettra les lignes correctes dans votre /etc/apt/sources.list.d/official-source-repositories.listfichier. N'oubliez pas de sudo apt-get update(ou cliquez sur Mettre à jour le cache dans les sources de logiciels) après cela.

gigue
la source
0

Avec la version 14.04 et les versions ultérieures, il existe un moyen plus propre et plus rapide d'activer les référentiels de code source:

sudo add-apt-repository -s

Référence: man add-apt-repository

utilisateur.dz
la source