Como adicionar repositório do shell no Debian?

135

No Ubuntu pode-se adicionar um repositório através do seguinte comando -

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

Como o Ubuntu é baseado na base de código Debian, eu esperava que o mesmo funcionasse no Debian também, mas isso não acontece.

  • Qual é o motivo disso?
  • Existe algum outro comando de shell que eu possa usar para obter o mesmo?

Observação: sei que posso editar /etc/apt/sources.list , mas quero conseguir isso a partir do shell. Eu também quero saber porque o mesmo comando não funciona quando o código base é o mesmo.

    
por Kshitiz Sharma 20.08.2012 / 11:34

4 respostas

177

Debian Jessie e mais tarde (2014 -)

Como apontado por @voltagex nos comentários, agora ele pode ser encontrado no pacote software-properties-common :

sudo apt-get install software-properties-common

Debian Wheezy e versões anteriores:

O programa add-apt-repository está disponível no Debian. Está no pacote python-software-properties :

sudo apt-get install python-software-properties

Foi adicionado a esse pacote na versão 0.75. A versão atual no Debian Stable ('squeeze') é 0,60, então não existe. A versão atualmente no Debian Testing ("wheezy") é 0.82.7.1debian1, então está disponível lá.

    
por 20.08.2012 / 17:13
16

Supondo que você esteja executando uma versão não antiga do Debian (Etch ou posterior), você pode simplesmente descartar um arquivo em /etc/apt/sources.list.d/ O nome do arquivo deve terminar com .list ; O Debian Stretch (ainda não lançado) provavelmente adicionará .sources com um formato diferente.

O formato é o mesmo que o arquivo principal sources.list.

A vantagem é que, especialmente se isso for para algum software que você está distribuindo, você não precisa se preocupar em mesclar suas alterações em um arquivo /etc/apt/sources.list possivelmente editado (especialmente difícil de lidar se seu programa é desinstalado). Você pode usar o% con_de% conffile support para colocar o arquivo em dpkg .

    
por 20.08.2012 / 21:47
13

add-apt-repository agora pode ser encontrado no pacote software-properties-common .

    
por 15.05.2014 / 23:00
8

O Ubuntu é baseado no Debian, mas inclui coisas que o Debian não faz (e, por sua vez, são frequentemente incorporadas no Debian mais tarde). O comando add-apt-repository é um exemplo que foi incluído no Ubuntu primeiro.

O add-apt-repository na verdade apenas executa alguns comandos para adicionar o repositório:

  • anexe o repositório a /etc/apt/sources.list
  • adicione a chave do repositório à máquina.

Um script que faz o mesmo que pode ser encontrado aqui é citado abaixo

#!/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
    
por 20.08.2012 / 12:13