Como adiciono um repositório apt-get sem editar o /etc/apt/sources.list?

19

Eu quero adicionar um repositório ao apt-get (sem potencialmente bagunçar o /etc/apt/sources.list) através do usuário de um script. Esse script pode ser executado várias vezes, portanto não posso acrescentar a entrada a cada vez. Existe alguma maneira de adicionar um único arquivo em um diretório com entradas?

Eu sei que você pode fazer isso pelo yum, mas não tenho certeza se é possível para o apt-get. Entre em contato se precisar adicionar mais informações.

Daisetsu
fonte
Se você clicar duas vezes em /etc/apt/sources.list, ele abrirá uma interface GUI com um assistente para adicionar repositórios. Há uma caixa de seleção onde você pode ativar e desativar as entradas (por exemplo, para permitir o uso de uma nova entrada somente ao atualizar algum software de repositório "externo"), e as entradas podem ser excluídas. Ele também cria um backup chamado sources.list.save no mesmo diretório. Se você deseja proteção extra, sempre pode fazer uma cópia do arquivo original antes de alterá-lo. Portanto, não há muito risco de atrapalhar o arquivo se você estiver seguindo a rota do script apenas por esse motivo.
Fixer1234

Respostas:

21

Você pode colocar arquivos /etc/apt/sources.list.d. Isso é descrito na página de manual para sources.list(tipo man sources.list). A página do manual diz:

SOURCES.LIST.D mais antigo

O diretório /etc/apt/sources.list.d fornece uma maneira de adicionar entradas sources.list em arquivos separados. O formato é o mesmo que para o arquivo sources.list comum. Os nomes dos arquivos precisam terminar com .list e podem conter apenas letras (az e AZ), dígitos (0-9), sublinhado (_), hífen (-) e caracteres de ponto (.). Caso contrário, eles serão silenciosamente ignorados.

ATUALIZAR:

2016 SOURCES.LIST.D

O diretório /etc/apt/sources.list.d fornece uma maneira de adicionar entradas sources.list em arquivos separados. Dois formatos de arquivo diferentes são permitidos, conforme descrito nas próximas duas seções. Os nomes de arquivos precisam ter a extensão .list ou .sources, dependendo do formato contido. Os nomes de arquivos podem conter apenas letras (az e AZ), dígitos (0-9), sublinhado (_), hífen (-) e caracteres de ponto (.). Caso contrário, o APT imprimirá um aviso de que ignorou um arquivo, a menos que esse arquivo corresponda a um padrão na lista de configuração Dir :: Ignore-Files-Silently - nesse caso, será ignorado silenciosamente.

larsks
fonte
8

Você poderia tentar:

add-apt-repository <REPOSITORY LINE>

A linha do repositório seria apenas o que você acrescentaria ao sources.list ou a um repositório PPA. Confira a página de manual aqui ou execute:

man add-apt-repository
BloodPhilia
fonte
11
De uma rápida olhada no arquivo man para o add-apt-repository, parece que ele simplesmente anexa a linha ao arquivo sources.list, não menciona se verifica, portanto é o mesmo que "linha de eco >> sources.list "que eu já tinha. Obrigado por responder.
Daisetsu 24/01
2
@Daisetsu Eu sei, acho que você se sentiu desconfortável editando manualmente o arquivo! Deve ter entendido mal! Ótimo, você conseguiu uma resposta que funcionou para você!
precisa saber é o seguinte
1

Eu (pensei que) precisava adicionar um repo ppa a uma instalação do crunchbang, (debian):
( NB "raring" é a versão do ubuntu que corresponde à versão do debian que eu estava usando), então eu fiz:

sudo su -

# you can call the file anything that you want, but it has to end with .list to be a valid for apt-get
echo 'deb http://ppa.launchpad.net/yannubuntu/boot-repair/ubuntu/ raring main'>> /etc/apt/sources.list.d/boot-repair.list

# get the keys for that repo so that apt can verify the signed .deb files
wget http://ppa.launchpad.net/yannubuntu/boot-repair/ubuntu/dists/raring/Release.gpg
apt-key add Release.gpg
#gpg --search-keys 60D8DA0B

apt-get update

A maior parte disso é explicada na página de reparo da inicialização (embora no final testdisk e Gparted fossem o que eu realmente precisava para restaurar uma partição perdida e um MBR corrompido.) Isso provavelmente não é o Debian way (TM), mas sim trabalhou para mim.

Alguns repositórios debian são o "estilo antigo" e você só precisa de uma linha como:

deb http://repo.alexx.net/apt/ /
# the trailing slash needs to be there

O add-apt-repository é bom se você o tiver, mas isso parece ser mais ubuntu.

Alexx Roche
fonte
0

add-apt-repository possui uma terceira forma (além de URLs do PPA e linhas completas do apt), que permite componentes de distribuição:

sudo add-apt-repository universe
sudo add-apt-repository contrib

Isso foi introduzido em 12.10 (Quantal).

Tobu
fonte
mostra Error: 'contrib' invalid usando o Ubuntu 16.04
Jaffer Wilson