Ошибка :: Вы должны поместить некоторые «исходные» URI в ваш sources.list

Я пытаюсь установить PIL модуль Python в Ubuntu.

Сначала мне нужно установить пакет, называемый python-imaging, используя следующую команду

sudo apt-get build-dep python-imaging

. это я получаю ошибку

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

Я видел этот вопрос, который показывает, как исправить через графический интерфейс, но я использую командную строку. Кто-нибудь знает, как я могу исправить эту ошибку ..?

ОБНОВЛЕНИЕ: Основываясь на ответах ниже, я обновил свой список пакетов, но теперь я получаю эту ошибку. Не уверен, что это связано, если нет, то я начну новый вопрос, поскольку нигде не могу найти ссылку на ошибку.

E: Build-Depends dependency for python-imaging cannot be satisfied because candidate version of package python-all-dev can't satisfy version requirements  
159
задан 13 April 2017 в 15:24

8 ответов

Отредактируйте /etc/apt/sources.list

sudo nano /etc/apt/sources.list

Затем удалите # или добавьте строки с deb-src $ url , например:

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

Или скопируйте из существующих строк, например

deb blah blah
deb-src exact same blah blah

Затем запустите:

sudo apt-get update

См. https://help.ubuntu.com/community/Repositories/CommandLine для получения дополнительной информации .

28
ответ дан 13 April 2017 в 15:24

Вы можете редактировать исходный список ( /etc/apt/sources.list ) напрямую. Я думаю, вам нужно добавить / раскомментировать эти строки:

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

Я решил это, отключив параметр исходного кода и сохранив одну копию файла sources.list, затем включив параметр исходного кода, сохранив еще одну копию, затем запустив diff на обоих.

Вы можете изменить префикс http: // gb. к префиксу других источников в вашем списке (так что он использует ваше ближайшее зеркало репо), и вы также можете игнорировать #Added by software-properties .

После редактирования sources.list , запустите sudo apt-get update перед повторной попыткой установки.

Полный diff можно найти здесь


Другой способ - создать новый. Один из способов получить полный список sources.list - использовать этот сайт: https://repogen.simplylinux.ch/

55
ответ дан 13 April 2017 в 15:24

Для Ubuntu 16.04 я успешно внес эти обновления в 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
4
ответ дан 13 April 2017 в 15:24

В Linux Mint (я использую версию 18) вы можете перейти в Источники программного обеспечения (найдите его в меню «Пуск» или откройте его с терминала с помощью программные источники ). Там, на первой вкладке, вы найдете флажок Включить репозитории исходного кода . Если вы включите это, программа поместит правильные строки в ваш файл /etc/apt/sources.list.d/official-source-repositories.list . Только не забудьте после этого sudo apt-get update (или нажать Обновить кеш в источниках программного обеспечения).

2
ответ дан 13 April 2017 в 15:24

software-properties-gtk опция «Исходный код»

Я рекомендую это для настольного компьютера:

software-properties-gtk

затем на вкладке «Программное обеспечение Ubuntu» нажмите «Исходный код»:

enter image description here

Это добавило несколько строк deb-src в /etc/apt/sources.list , и теперь я могу выполнить sudo apt-get build-dep .

Мне не удалось найти чистый метод CLI, поэтому я создаю для него этот отчет об ошибке: https://bugs.launchpad.net/ubuntu/+source/apt/+bug / 1802718

Проверено на Ubuntu 16.04–18.04.

Метод интерфейса командной строки

Я рекомендую это для образов 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

Протестировано на образе Docker Ubuntu 18.04. После этого изменения я могу успешно выполнить, например:

sudo apt-get build-dep hello

, а до изменения произошел сбой с ошибкой:

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

Ранее упоминалось по адресу: https://askubuntu.com/a/1011675/52975 пойти и проголосовать за этот ответ.

Однако обратите внимание, что файл /etc/apt/sources.list содержит такие строки, как:

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

, что означает, что приведенный выше sed включит источники, но не не-источники для некоторых типов репозиториев. Я не думаю, что это имеет большое значение.

155
ответ дан 13 April 2017 в 15:24

Вот решение командной строки

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

типичный вывод вышеуказанного 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

, если вы хорошо меняете приведенные выше строки, что всегда верно при новой установке ubuntu, тогда введите:

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

, который выполняет резервное копирование входного файла, затем поиск закомментировал deb-src, где он удаляет комментарий, чтобы сделать эти строки активными ... после обновления локальных метаданных ваша машина узнает о новых категориях пакетов ubuntu

sudo apt-get update

. Теперь снова введите исходную команду whic h не удалось выполнить:

E: You must put some 'source' URIs in your sources.list
12
ответ дан 22 November 2019 в 22:59

С выпуском 14.04 и позже, существует более чистый и более быстрый способ активировать репозитории исходного кода:

sudo add-apt-repository -s

Ссылка: man add-apt-repository

0
ответ дан 22 November 2019 в 22:59

Мое решение берет уже настроенные строки deb и добавляет их как строки deb-src. Протестировано с использованием образа докера perl: 5.28, который основан на buildpack-deps: buster, который основан на debian: buster:

grep '^deb ' /etc/apt/sources.list | perl -pe 's/deb /deb-src /' >> /etc/apt/sources.list
0
ответ дан 5 January 2021 в 23:05

Другие вопросы по тегам:

Похожие вопросы: