Como instalar vários PPAs e aplicativos de uma só vez?

9

Vou instalar alguns computadores de uso geral em uma das bancadas de trabalho do meu laboratório.

Há vários repositórios e aplicativos PPA dos repositórios Ubuntu que eu gostaria de instalar após uma instalação inicial do Ubuntu.

É possível escrever um script que instalará todos os aplicativos e PPAs de uma só vez, exigindo apenas que eu dê um clique duplo no script executável e digite a senha de administrador?

Eu imagino que seria bastante direto. Alguém poderia me indicar um tutorial rápido ou talvez até fornecer um script de modelo de algum tipo para que eu possa adicionar os nomes do PPA e os pacotes de instalação do apt-get?

Obrigado.

mloman
fonte

Respostas:

7

Usei o script simples abaixo para adicionar os PPAs texworks e Ubuntu GIS e, em seguida, instalar texworks e Quantum Gis a partir de suas respectivas fontes. Você pode expandi-lo adicionando outros PPAs e adicionando os nomes dos pacotes à linha de comando do apt-get install.

#!/bin/bash

echo "Adding PPAs"

add-apt-repository ppa:texworks
add-apt-repository ppa:ubuntugis/ubuntugis-unstable


echo "updating repositories"
apt-get update

echo "Installing packages"

apt-get install texworks qgis

echo "Finished adding PPAs and insatlling applications"
exit 0
Sabacon
fonte
O add-apt-repository geralmente pede que eu digite Y para concordar em adicioná-lo à lista de fontes. Isso afetará o fluxo automático do script?
mloman
No meu teste, nenhuma pergunta foi emitida, tudo foi adicionado e instalado automaticamente.
Sabacon
Nenhum prompt no 11.04, irritante "Pressione Y para adicionar" no 11.10. Eu não sei como me livrar disso - desculpe.
Scaine
2
Deveria ter mencionado - se você está confiante sobre o que será instalado pelo apt-get, você pode passar apt-get install -ye ele não solicitará o "Y para continuar". Talvez add-apt-repositorysuporte a mesma opção?
Scaine
3
@Scaine Sim, add-apt-repositorysuporta-y
jcollado
2

Um script bash faria o que você pede com muita facilidade.

Aqui está um link para um bom guia de scripts do bash que eu uso: http://tldp.org/LDP/abs/html/

Simplificando, você precisa chamar 3 comandos para instalar a partir de um PPA

  1. sudo add-apt-repository ppa:
  2. sudo apt-get update
  3. sudo apt-get dist-upgrade

Se você quiser pular direto para o exemplo de um, escrevi um artigo de blog de um desses scripts de bash automatizados para instalar aplicativos de diferentes fontes:

http://gautham-chandra.tumblr.com/post/15544311989/ninite-like-bash-script-to-install-and-configure-some

No script, solicito permissões de root para o script com antecedência, para que os comandos não precisem ser executados com o sudo à sua frente, conforme solicitado.

Um exemplo específico da instalação de um PPA é mostrado no artigo ao instalar uma versão diferente do libnotify.

Gautham C.
fonte
0

Instalação autônoma a partir de uma lista

Para uma instalação autônoma de uma lista de pacotes e adicionar vários ppa ao nosso sistema, podemos usar o seguinte script:

#! /bin/bash
# Save as e.g. 'uptodate' and make executable
# Usage:
# sudo ./uptodate <mysources> <packages>

sudo cp $1 /etc/apt/sources.list.d/mysource.list
sudo apt-get update
xargs -a "$2" sudo apt-get -y install

O script tem dois argumentos. O primeiro é um arquivo (por exemplo mysources) no diretório de scripts em que salvamos uma lista de nossas fontes de software de acordo com as especificações de um sources.list, por exemplo:

deb http://ppa.launchpad.net/<maintainer>/<name>/<ubuntu> <release> main
deb http://ppa.launchpad.net/<other_maintainer>/<name>/<ubuntu> <release> main
...

Substitua todas as variáveis ​​pelos valores desejados

O segundo argumento é um arquivo (por exemplo packages) com uma lista de pacotes que desejamos instalar no formato, por exemplo:

packagename
otherpackage
...

Salve o script com, por exemplo, o nome uptodate, torne-o executável e execute a partir de um terminal:

cd /directory/of/script
sudo ./uptodate mysources packages

O que o script faz?

Ele apenas copia nossa mysourceslista para /etc/sources.list.d/mysources.list, atualiza as informações do pacote e instala todos os pacotes da packageslista que fornecemos usando xargs .

Nota: também podemos precisar fazer o download de uma chave válida do launchpad keyserver para poder instalar a partir do ppa que adicionamos.

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 72D340A3

Substitua a chave de assinatura (aqui 72D340A3) pela apropriada

Nota 2: É uma boa ideia executar o script em um terminal e não com um clique duplo, porque queremos saber sobre erros.

Takkat
fonte
Isso é realmente útil para fazer backup e restaurar minhas próprias listas e pacotes de fontes. Mas você poderia elaborar a parte do servidor de chaves. Incluiria o último código dentro do script ou o executaria separadamente? Preciso fazer isso para a chave de assinatura de todos os PPAs?
mloman
Na verdade, como posso escrever minha própria lista de fontes e lista de pacotes, esse pode ser um método de instalação ainda mais fácil, mas por favor elabore a parte do servidor de chaves. Como eu saberia qual é a chave de assinatura "apropriada"?
mloman
você pode verificar na página inicial do ppa ou obterá um erro do apt-get dizendo. Quando a chave estiver na máquina, ela não perguntará novamente. Não é para inclusão no script. Você ainda não conhece os números.
Takkat
Ok, está tudo claro para mim agora. Encontrei este link para backup rápido de arquivos-chave.
mloman