web-dev-qa-db-ja.com

Ubuntu 16.04でソースURIを使用して/etc/apt/sources.listを自動的に更新する方法は?

次のコマンドは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ではコメントなしのdeb-src/etc/apt/sources.listが含まれるすべての行(数で約10)に対して、16.04ではコメントアウトされた対応する行。たとえば、現在のsources.listから次の4行があります。

## 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

この変更の理由は何ですか?

次に、Ubuntuを再インストールするたびに/etc/apt/sources.listを手動で編集するのを避けたいと思います。これ(deb-src行のコメントを外す)を自動的に行うにはどうすればよいですか?

10
Håkon Hægland

Software&Updatesを開き、「ソースコード」を有効にします。

10

Ubuntu 16.04のサーバーインストールでも同じ問題が発生したため、GUIはありません。必要なのは、いくつかの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を続行します。

10
Tobi

deb-srcsources.list行のコメントを解除するために使用できる(現在テストされていない)Bashスクリプトを次に示します。

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
Håkon Hægland