Как автоматически обновить /etc/apt/sources.list с исходными URI в Ubuntu 16.04?

10

Следующая команда отлично работала в Ubuntu 15.10:

sudo apt-get build-dep emacs24

Однако в Ubuntu 16.04 при запуске я получаю следующую ошибку:

Reading package lists... Done
E: You must put some 'source' URIs in your sources.list

В 15.10 все линии (около 10 числа) с , deb-srcв /etc/apt/sources.listкотором раскомментирована, тогда как в 16.04 соответствующие линии , где закомментирована. Например, вот 4 строки из моего текущего sources.list:

## Major bug fix updates produced after the final release of the
## distribution.
deb http://no.archive.ubuntu.com/ubuntu/ xenial-updates main restricted
# deb-src http://no.archive.ubuntu.com/ubuntu/ xenial-updates main restricted

В чем причина этого изменения?

Далее, я хотел бы избегать ручного редактирования /etc/apt/sources.listкаждый раз, когда я делаю переустановку Ubuntu. Как это можно сделать (раскомментируя deb-srcстроки) автоматически?

Хокон Хагланд
источник
Причина, вероятно, заключается в том, что для большинства пользователей бесполезно тратить время / пропускную способность, чтобы каждый раз обновлять базу данных доступных исходных пакетов. Из графического интерфейса, в котором вы настраиваете используемые репозитории, вы можете легко отключить / включить (комментировать / раскомментировать) эти строки. Есть также несколько sedсценариев вокруг.
JanC
python3-software-propertiesПакет может быть полезным , чтобы написать сценарий Python тоже.
JanC
@JanC Спасибо, я написал свой собственный сценарий. Смотрите ответ ниже.
Хокон Хагланд
Версия только для CLI: askubuntu.com/questions/496549/…
Сиро Сантилли 新疆 改造 中心 法轮功 六四 事件

Ответы:

10

Откройте Software & Updates и включите «Исходный код».

Гуннар Хьялмарссон
источник
12
Бесполезно, если ваша Ubuntu - это сервер с просто оболочкой
Voitek Zylinski
10

У меня была такая же проблема на серверной установке Ubuntu 16.04, поэтому без графического интерфейса. Все, что мне было нужно, это пара sedкоманд.

sudo sed -i -- 's/#deb-src/deb-src/g' /etc/apt/sources.list && sudo sed -i -- 's/# deb-src/deb-src/g' /etc/apt/sources.list

Тогда sudo apt-get updateи продолжай дальше.

Tobi
источник
2

Вот (в настоящее время не проверенный) скрипт Bash, который можно использовать для раскомментирования deb-srcстрок в sources.list:

tempdir=$(mktemp -d)
cd "$tempdir"
source_file=/etc/apt/sources.list
new_file=sources.list.new
perl -pE 's/^#\s+(deb-src)/$1/' "$source_file" > "$new_file"
sudo cp "$new_file" "$source_file"
sudo apt-get update
Хокон Хагланд
источник
Нет необходимости в сценарии. Пожалуйста, посмотрите мой ответ.
Гуннар Хьялмарссон