Como verificar se um repositório já foi adicionado

3

Eu tenho dois repositórios que quero que meu script verifique se eles estão no sistema. Como posso verificar por linha de comando se um repositório já está adicionado ao sistema e, se não, adicioná-los?

    
por Alexandre Teles 31.08.2012 / 18:40

3 respostas

6

Você pode ver todo o repositório habilitado no terminal com este comando abaixo (Ele irá imprimir toda a linha do repositório começando com deb ou deb-src )

find /etc/apt/ -name *.list | xargs cat | grep  ^[[:space:]]*deb

Explicação: primeiro find localiza todos os arquivos com .list extensão no diretório /etc/apt e alimenta xargs da lista, que por sua vez imprime todo o texto em todos esses arquivos para o dispositivo de exibição, ou seja, monitor. Então, grep seleciona as linhas que começam com deb . Eu usei etapa extra para incluir essas linhas também que começa com caracteres de espaço em branco em vez de deb .

Se você quiser ver apenas os repositórios com pacotes binários e não pacotes de fontes (deb-src), use outro grep para excluir entradas com deb-src como este:

find /etc/apt/ -name *.list | xargs cat | grep  ^[[:space:]]*deb | grep -v deb-src

Para adicionar o repositório usando a linha de comando, basta usar esse tipo de comando:

(suponho que sua linha de origem do repositório seja assim deb http://mydomain.com/ubuntu precise main )

echo deb http://mydomain.com/ubuntu precise main | sudo tee -a /etc/apt/sources.list

Este comando usa o programa tee , que é usado para ler e gravar da entrada padrão para a saída padrão. Aqui, é necessária a linha de repositório ecoada e colocar essa linha no final do arquivo /etc/apt/sources.list , que é o arquivo de origem do repositório principal.

Observe que, sem usar a opção -a para tee , todo o sources.list será substituído pela linha apenas com eco.

Como alternativa, você pode usar seu próprio arquivo para o repo personalizado sem tocar no arquivo sources.list . Por exemplo,

echo deb http://mydomain.com/ubuntu precise main | sudo tee -a /etc/apt/sources.list.d/teles.list

Ele criará um arquivo no diretório /etc/apt/sources.list.d com o nome teles.list contendo a linha deb http://mydomain.com/ubuntu precise main .

Note que, para adicionar fonte de repositório ao sistema, seu script precisa ser executado com privilégio root

    
por Anwar 31.08.2012 / 19:48
0

Eu não sei se é isso que você precisa, mas digitando

software-properties-gtk

em um terminal ou em janelas de comando do painel abrirá uma lista de fontes de software.

Use este comando para adicionar seu PPA

sudo add-apt-repository ppa:YOUR PPA HERE

Espero que ajude

EDIT: Você pode editar o arquivo com sudo nano /etc/apt/sources.list , se necessário. nano é um editor de texto terminal, você pode ter que fazer isso primeiro

sudo apt-get install nano

para instalá-lo.

    
por Mark Kirby 31.08.2012 / 18:42
0

Eu usaria apenas grep , se o nome do repositório estiver em REPO variable, faça algo assim:

if ! grep -q "$REPO" /etc/apt/sources.list; then
  # do something if repo is not installed
fi
    
por Thor 31.08.2012 / 20:07