Помилка :: Ви повинні вказати деякі "вихідні" URI у своєму source.list


107

Я намагаюся встановити PIL модуль python на ubuntu

Спершу мені потрібно встановити пакет під назвою python-imaging за допомогою наступної команди

sudo apt-get build-dep python-imaging

Коли я намагаюся це зробити, я отримую помилку

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

Я бачив це питання, яке показує, як виправити через GUI, але я використовую командний рядок. Хтось знає, як я можу виправити цю помилку ..?

ОНОВЛЕННЯ: На підставі наведених нижче відповідей я оновив свій список пакунків, але тепер отримую цю помилку. Не впевнений, чи це пов’язано, якщо ні, я розпочну нове запитання, оскільки я ніде не можу знайти посилання на помилку.

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

Перше повідомлення про помилку є досить заплутаним. Він відображається, хоча у файлі є ДЕЯКІ джерела, тоді як повідомлення означає, що джерела взагалі відсутні. Що повідомлення намагається сказати - це ви повинні додати джерело, яке містить інформацію.
Sören

Відповіді:


100

software-properties-gtk опція "Вихідний код"

Я рекомендую це для робочого столу:

software-properties-gtk

потім на вкладці "Програмне забезпечення Ubuntu" натисніть "Вихідний код":

введіть тут опис зображення

Це додало deb-srcрядків під /etc/apt/sources.list, і тепер я можу це зробити sudo apt-get build-dep <package>.

Я не зміг знайти чистий метод CLI, тому я створив для нього цей звіт про помилку: https://bugs.launchpad.net/ubuntu/+source/apt/+bug/1802718

Тестували на Ubuntu 16.04 по 18.04.

Метод CLI

Я рекомендую це для зображень 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дозволило б мати джерела, але не є джерелами для деяких видів репостів. Я не думаю, що це має велике значення.


5
Це просто працювало для мене з ubuntu 16.04
або Duan

2
Також вирішив це для мене на Ubuntu 18.04
kramer65

2
@kilgoretrout "як прийнята відповідь" Оскільки пошуки пошуку Google перемогли точну семантику запитань.
Ciro Santilli 新疆 改造 中心 法轮功 六四 事件

1
Дуже круто! Треба любити сед!
Есбен Ейхардт

1
працює в 19.04
Харіс

49

Ви можете редагувати список джерел ( /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

Я розробив це, відключивши параметр вихідного коду та збереживши одну копію файлу source.list, потім включивши параметр вихідного коду, зберігаючи іншу копію, а потім працюючи diffна обох.

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

Після редагування sources.listзапустіть sudo apt-get updateперед повторною спробою встановлення.

Повний diffможна знайти тут


Інший спосіб - генерувати новий. Одним із способів отримати повний source.list є використання цього веб-сайту: https://repogen.simplylinux.ch/


7
"Після редагування source.list запустіть оновлення apt-get, перш ніж спробувати встановити." - Це був ключ, дякую!
Каушал Моді

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

1
дякую товаришу за те, що пам’ятаєте мене про це$ sudo apt update
christianbueno.1

@ Коментар Вінцента був мені достатній і надто чистий
kilgoretrout

27

Редагувати /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 .


17
exec sudo apt-get updateпісля редагування sources.listфайлу
abidibo

4

Ось рішення командного рядка

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

тепер ще раз видайте оригінальну команду, яка не вдалася до:

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

1
Ви можете пропустити CP і використовувати -i~origSed, щоб sed створити резервну копію.
муру

3

Для Ubuntu 16.04 я успішно здійснив ці оновлення до source.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

У Linux Mint (я на версії 18) ви можете перейти до програмних джерел (шукайте його в меню "Пуск" або відкрийте його з терміналу software-sources). Там, на першій вкладці, ви знайдете прапорець Увімкнути сховища вихідного коду . Якщо ввімкнути це, програма помістить правильні рядки у ваш /etc/apt/sources.list.d/official-source-repositories.listфайл. Просто не забувайте після цього sudo apt-get update(або натисніть Оновити кеш-пам'ять у джерелах програмного забезпечення) після цього.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.