Script para ativar os downloads de "origem" de maneira determinística

1

Eu escrevi alguns scripts para ajudar os usuários a puxar seu pacote atual de fontes do kernel, aplicar algumas correções e construí-lo como um pacote .deb com make-kpkg . Um dos poucos passos que requer intervenção manual é ativar os downloads "Fonte" via:

  • "Ubuntu Software Center"
    • Editar ...
      • Fontes de software ...
        • "Código-fonte"

Existe uma maneira de fazer isso automaticamente através da linha de comando? É para mim que eu poderia apenas descomentar as primeiras linhas "deb-src" em /etc/apt/sources.list , assim:

# 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

Isso é um tanto propenso a erros, dado que os scripts sed que escrevi não funcionam necessariamente se as fontes estiverem fora da ordem padrão ou por várias outras razões. Mais importante, gostaria que isso funcionasse no Ubuntu 14.04, no Ubuntu 16.04, etc (ou seja: o mais genérico possível).

Existe alguma ferramenta de linha de comando apt -related tools para realizar isso através de um shell script?

Obrigado.

    
por DevNull 07.05.2016 / 16:42

2 respostas

2

No final, acabei de ativar todos os src repos.

sed -i '/^#\sdeb-src /s/^#//' "/etc/apt/sources.list"

Isso não requer a atualização do sistema operacional para uma versão arbitrária.

    
por DevNull 08.05.2016 / 20:03
2

Eu tive um problema semelhante ao seu e, finalmente, comecei a fazer o script a seguir, para escrever um sources.list temporário e depois removê-lo novamente:

# 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
    
por Videonauth 07.05.2016 / 17:05