次のコマンドは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
行のコメントを外す)を自動的に行うにはどうすればよいですか?
Software&Updatesを開き、「ソースコード」を有効にします。
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
を続行します。
deb-src
のsources.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