web-dev-qa-db-fra.com

Comment ajouter un référentiel à partir de Shell dans Debian?

Dans Ubuntu, on peut ajouter un référentiel via la commande suivante -

Sudo add-apt-repository ppa:yannubuntu/boot-repair

Comme Ubuntu est basé sur la base de code Debian, je m'attendais à ce que cela fonctionne également dans Debian, mais ce n'est pas le cas.

  • Quelle est la raison pour ça?
  • Existe-t-il une autre commande Shell que je peux utiliser pour obtenir le même résultat?

Remarque: je sais que je peux modifier /etc/apt/sources.list, mais je veux y parvenir à partir du Shell. Je veux également savoir pourquoi la même commande ne fonctionnera pas lorsque la base de code est la même.

143
Kshitiz Sharma

Debian Jessie et versions ultérieures (2014-)

Comme l'a souligné @voltagex dans les commentaires, il peut maintenant être trouvé dans le software-properties-common paquet:

Sudo apt-get install software-properties-common

Debian Wheezy et versions antérieures:

Le programme add-apt-repositoryest disponible dans Debian. C'est dans le python-software-properties paquet:

Sudo apt-get install python-software-properties

Il a été ajouté à ce package dans la version 0.75. La version actuelle dans Debian Stable ('squeeze ") est 0.60, donc elle ne l'a pas. La version actuellement dans Debian Testing (" wheezy ") est 0.82.7.1debian1, donc elle est disponible là-bas.

186
Jim Paris

En supposant que vous exécutez une version non ancienne de Debian (Etch ou ultérieure), vous pouvez simplement déposer un fichier dans /etc/apt/sources.list.d/ Le nom du fichier doit se terminer par .list; Debian Stretch (pas encore publié) ajoutera probablement .sources avec un format différent.

Le format est le même que le fichier sources.list principal.

L'avantage est, surtout si c'est pour certains logiciels que vous distribuez, vous n'avez pas à vous soucier de fusionner vos modifications dans un fichier /etc/apt/sources.list éventuellement édité (particulièrement difficile à gérer si votre programme est désinstallé). Vous pouvez utiliser le support de conffile dpkg pour placer le fichier dans /etc/apt/sources.list.d/.

17
derobert

add-apt-repository se trouve maintenant dans le software-properties-common paquet.

14
Richard Ayotte

Ubuntu est basé sur Debian mais inclut des choses que Debian ne fait pas (et à leur tour sont souvent incorporées à Debian plus tard). Le add-apt-repository command est un exemple qui a été inclus dans Ubuntu en premier.

Le add-apt-repository exécute simplement quelques commandes pour ajouter le référentiel:

  • ajoutez le référentiel à /etc/apt/sources.list
  • ajoutez la clé du référentiel à la machine.

Un script qui fait en quelque sorte la même chose que l'on peut trouver ici est cité ci-dessous

#!/bin/bash
if [ $# -eq 1 ]
NM=$(uname -a && date)
NAME=$(echo $NM | md5sum | cut -f1 -d" ")
then
    ppa_name=$(echo "$1" | cut -d":" -f2 -s)
    if [ -z "$ppa_name" ]
    then
        echo "PPA name not found"
        echo "Utility to add PPA repositories in your debian machine"
        echo "$0 ppa:user/ppa-name"
    else
        echo "$ppa_name"
        echo "deb http://ppa.launchpad.net/$ppa_name/ubuntu lucid main" >> /etc/apt/sources.list
        apt-get update >> /dev/null 2> /tmp/${NAME}_apt_add_key.txt
        key=$(cat /tmp/${NAME}_apt_add_key.txt | cut -d":" -f6 | cut -d" " -f3)
        apt-key adv --keyserver keyserver.ubuntu.com --recv-keys $key
        rm -rf /tmp/${NAME}_apt_add_key.txt
    fi
else
    echo "Utility to add PPA repositories in your debian machine"
    echo "$0 ppa:user/ppa-name"
fi
8
Goez