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

Следующая команда отлично работала в 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) автоматически?

1
задан 23 April 2016 в 20:11

2 ответа

У меня была такая же проблема на установке сервера 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 и продолжить.

8
ответ дан 23 May 2018 в 11:53

Вот (в настоящее время непроверенный) скрипт 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
2
ответ дан 23 May 2018 в 11:53
  • 1
    Нет необходимости в скрипте. Пожалуйста, см. Мой ответ. – Gunnar Hjalmarsson 23 April 2016 в 22:28

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

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