Erro: você deve colocar alguns URIs 'source' em seu sources.list

107

Estou tentando instalar o PIL um módulo python no ubuntu

Primeiro, preciso instalar um pacote chamado python-imaging usando o seguinte comando

sudo apt-get build-dep python-imaging

Quando tento fazer isso, recebo o erro

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

Eu vi essa pergunta que mostra como corrigir através da GUI, mas estou usando a linha de comando. Alguém sabe como posso corrigir esse erro ..?

ATUALIZAÇÃO: Com base nas respostas abaixo, atualizei minha lista de pacotes, mas agora recebo esse erro. Não tenho certeza se está relacionado, caso contrário, vou iniciar uma nova pergunta, pois não consigo encontrar referência ao erro em nenhum lugar.

E: Build-Depends dependency for python-imaging cannot be satisfied because candidate version of package python-all-dev can't satisfy version requirements  
david
fonte
A primeira mensagem de erro é bastante confusa. Ele aparece, embora haja ALGUMAS fontes no arquivo, enquanto a mensagem implica que não há fontes. O que a mensagem tenta dizer é que você precisa adicionar uma fonte que contenha as informações.
Sören

Respostas:

100

software-properties-gtk opção "Código fonte"

Eu recomendo isso para a área de trabalho:

software-properties-gtk

depois, na guia "Ubuntu Software", clique em "Código fonte":

insira a descrição da imagem aqui

Isso adicionou algumas deb-srclinhas abaixo /etc/apt/sources.list, e agora eu posso fazer sudo apt-get build-dep <package>.

Como não encontrei um método CLI limpo, criei um relatório de erro para ele: https://bugs.launchpad.net/ubuntu/+source/apt/+bug/1802718

Testado no Ubuntu 16.04 a 18.04.

Método CLI

Eu recomendo isso para imagens do 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

Testado na imagem do Ubuntu 18.04 Docker. Após essa alteração, posso fazer com êxito, por exemplo:

sudo apt-get build-dep hello

e antes da alteração, falhava com o erro:

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

Mencionado anteriormente em: https://askubuntu.com/a/1011675/52975 vá e faça o upvote dessa resposta.

Observe, no entanto, que o /etc/apt/sources.listarquivo contém linhas como:

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

o que significa que as opções acima sedpermitiriam fontes, mas não fontes, para alguns tipos de repositórios. Eu não acho que isso importe muito embora.

Ciro Santilli adicionou uma nova foto
fonte
5
Isso só funcionou para mim com ubuntu 16.04
Ou Duan
2
Também resolvido para mim no Ubuntu 18.04
kramer65
2
@kilgoretrout "como é a resposta aceita" Como os resultados da pesquisa do Google superam a semântica exata das perguntas.
Ciro Santilli #
1
Muito legal! Tem que amar sed!
Esben Eickhardt
1
trabalhando em 19.04
Haris
50

Você pode editar a lista de fontes ( /etc/apt/sources.list) diretamente. Eu acho que você precisa adicionar / descomentar estas linhas:

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

Eu resolvi isso desativando a opção de código-fonte e salvando uma cópia do arquivo sources.list, ativando a opção de código-fonte, salvando outra cópia e executando as diffduas.

Você pode alterar o prefixo http://gb.para o prefixo das outras fontes da sua lista (para que ele use o espelho de repo mais próximo) e também pode ignorar o #Added by software-properties.

Após a edição sources.list, execute sudo apt-get updateantes de tentar instalar novamente.

A íntegra diffpode ser encontrada aqui


Outra maneira é gerar um novo. Um método para obter uma lista completa de sources.list é usar este site: https://repogen.simplylinux.ch/

Wilf
fonte
7
"Após editar o sources.list, execute o sudo apt-get update antes de tentar instalar novamente." - Essa foi a chave, obrigado!
precisa
9
O comando sudo sed -i -e / # deb-src / deb-src / '/etc/apt/sources.list
Vincent
1
graças pal para lembrar-me que$ sudo apt update
christianbueno.1
@ Comentário de Vincent foi o suficiente para mim e super clean
kilgoretrout
27

Editar /etc/apt/sources.list

sudo nano /etc/apt/sources.list

Em seguida, remova #ou adicione linhas com deb-src $url, por exemplo:

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

Ou copie das linhas existentes, por exemplo

deb blah blah
deb-src exact same blah blah

Então corra:

sudo apt-get update

Veja https://help.ubuntu.com/community/Repositories/CommandLine para obter informações adicionais.

Pantera
fonte
17
exec sudo apt-get updateapós editar o sources.listarquivo
abidibo 18/03/2015
4

Aqui está a solução da linha de comando

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

saída típica de cmd acima

# 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 você é bom alterando as linhas acima, o que sempre acontece em uma nova instalação do ubuntu, emita:

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

que faz um backup do arquivo de entrada e, em seguida, procura pelo deb-src comentado, onde ele remove o comentário para tornar essas linhas ativas ... após a atualização dos metadados locais, sua máquina fica ciente das novas categorias de pacotes do ubuntu

sudo apt-get update

Agora, emita novamente o comando original que falhou com:

E: You must put some 'source' URIs in your sources.list
Scott Stensland
fonte
1
Você pode pular o cp e usar -i~origcom o sed para que o sed faça o backup.
Muru
3

Para o Ubuntu 16.04, fiz essas atualizações com sucesso no 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
user3226232
fonte
2

No Linux Mint (eu estou na versão 18), você pode ir para Fontes de software (procurá-lo no menu Iniciar ou abri-lo em um terminal com software-sources). Lá, na primeira guia, você encontrará uma caixa de seleção Ativar repositórios de código-fonte . Se você habilitar isso, o programa colocará as linhas corretas no seu /etc/apt/sources.list.d/official-source-repositories.listarquivo. Só não se esqueça de sudo apt-get update(ou clique em Atualizar o cache nas fontes de software) depois disso.

nervosismo
fonte