Я написал несколько сценариев, чтобы помочь пользователям вытащить свой текущий исходный пакет ядра, применить некоторые исправления и создать его как пакет .deb с make-kpkg. Один из немногих шагов, требующих ручного вмешательства, позволяет загружать «Source» с помощью:
«Программный центр Ubuntu» Редактировать ... Источники программного обеспечения ... «Исходный код»
Есть ли способ сделать это автоматически через командную строку? Насколько я понимаю, я мог просто не комментировать первые несколько строк «deb-src» в /etc/apt/sources.list, например:
# See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to
# newer versions of the distribution.
deb http://ca.archive.ubuntu.com/ubuntu/ trusty main restricted
deb-src http://ca.archive.ubuntu.com/ubuntu/ trusty main restricted
## Major bug fix updates produced after the final release of the
## distribution.
deb http://ca.archive.ubuntu.com/ubuntu/ trusty-updates main restricted
deb-src http://ca.archive.ubuntu.com/ubuntu/ trusty-updates main restricted
Это несколько подвержено ошибкам, хотя, учитывая sed сценарии, которые я написал, не обязательно работают, если источники не соответствуют порядку по умолчанию или другим причинам. Что еще более важно, я бы хотел, чтобы это работало на Ubuntu 14.04, Ubuntu 16.04 и т. Д. (Т. Е. Как можно более общий).
Существуют ли какие-либо средства командной строки apt для выполнения этого через сценарий оболочки?
Спасибо.
У меня была аналогичная проблема, как и у вас, и, наконец, я начал делать следующий скрипт, чтобы написать временный файл sources.list, а затем снова удалить его:
# making a copy of the users original sources.list file
cp -v /etc/apt/sources.list /etc/apt/sources.list.orig &&
# writing a custom sources.list file
cat > /etc/apt/sources.list << "EOF"
deb-src http://archive.ubuntu.com/ubuntu xenial main restricted
deb http://archive.ubuntu.com/ubuntu/ xenial main restricted
deb-src http://archive.ubuntu.com/ubuntu/ xenial multiverse main universe restricted
deb http://archive.ubuntu.com/ubuntu/ xenial-updates main restricted
deb-src http://archive.ubuntu.com/ubuntu/ xenial-updates multiverse main universe restricted
deb http://archive.ubuntu.com/ubuntu/ xenial universe
deb http://archive.ubuntu.com/ubuntu/ xenial-updates universe
deb http://archive.ubuntu.com/ubuntu/ xenial multiverse
deb http://archive.ubuntu.com/ubuntu/ xenial-updates multiverse
deb http://archive.ubuntu.com/ubuntu/ xenial-backports main restricted universe multiverse
deb-src http://dearchive.ubuntu.com/ubuntu/ xenial-backports main restricted universe multiverse
deb http://archive.canonical.com/ubuntu xenial partner
deb-src http://archive.canonical.com/ubuntu xenial partner
deb http://security.ubuntu.com/ubuntu xenial-security main restricted
deb-src http://security.ubuntu.com/ubuntu xenial-security multiverse main universe restricted
deb http://security.ubuntu.com/ubuntu xenial-security universe
deb http://security.ubuntu.com/ubuntu xenial-security multiverse
EOF
# running an update
apt-get update &&
apt-get -y dist-upgrade &&
# DO YOUR STUFF
# putting back the original sources.list
mv -v /etc/apt/sources.list /etc/apt/sources.list.tmp &&
cp -v /etc/apt/sources.list.orig /etc/apt/sources.list &&
# removing backup files
rm -rfv /etc/apt/sources.list.tmp &&
rm -rfv /etc/apt/sources.list.orig