2 votes

script pour activer les téléchargements "source" de manière déterministe.

J'ai écrit un couple de scripts pour aider les utilisateurs à extraire leur paquet source actuel du noyau, à appliquer certains de mes correctifs, et à le construire comme une .deb paquet avec make-kpkg . L'une des rares étapes qui nécessite une intervention manuelle est l'activation des téléchargements "Source" via :

  • "Centre logiciel Ubuntu"
    • Editer...
      • Sources des logiciels...
        • "Code source"

enter image description here

Existe-t-il un moyen de faire cela automatiquement via la ligne de commande ? Si j'ai bien compris, je pourrais simplement décommenter les premières lignes de "deb-src" dans le fichier "deb-src". /etc/apt/sources.list comme ça :

# 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

Cette méthode est toutefois sujette à des erreurs, étant donné que la sed scripts que j'ai écrits ne fonctionnent pas forcément si les sources ne sont pas dans l'ordre par défaut, ou pour diverses autres raisons. Plus important encore, j'aimerais que cela fonctionne sur Ubuntu 14.04, Ubuntu 16.04, etc (c'est-à-dire aussi générique que possible).

Existe-t-il une ligne de commande apt -pour y parvenir via un Shell Shell ?

Merci.

4voto

Stuntbeaver Points 530

En fin de compte, j'ai juste activé toutes les src repos.

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

Cela ne nécessite pas de mettre à niveau le système d'exploitation vers une version arbitraire.

2voto

Videonauth Points 31896

J'ai eu un problème similaire au vôtre et finalement j'ai commencé à faire le script suivant, pour écrire un fichier temporaire. sources.list et le retirer à nouveau par la suite :

# 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

0voto

Rohan Monga Points 440

J'ai mis au point un script perl qui décomment uniquement le fichier deb-src qui sont précédées d'une ligne non commentée. deb ligne :

perl -pi.orig -0e 's/^(deb .*\n)# (deb-src)/$1$2/mg' /etc/apt/sources.list

Il conservera également l'original comme /etc/apt/sources.list.orig . (afin que vous puissiez le restaurer plus tard si vous le souhaitez)

Ce site devrait travailler à travers les versions, en supposant qu'ils continuent leur habitude de mettre des commentateurs deb-src juste après les lignes correspondantes deb lignes.

0voto

Ben Mares Points 165

En reliant divers éléments, j'ai trouvé une solution facilement réversible pour activer et désactiver les téléchargements de sources.

Activer la source

De et la solution de Stéphane Gourichon con sed modifié pour ignorer les lignes non correspondantes et la sortie redirigé avec sudo dans un fichier temporaire sous sources.list.d/ :

sed -e '/^#\sdeb-src /s/^# *//;t;d' "/etc/apt/sources.list" \
| sudo tee /etc/apt/sources.list.d/source-repos-tmp.list > /dev/null

Désactiver la source

sudo rm /etc/apt/sources.list.d/source-repos-tmp.list

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X