Como escrevo um script de shell de instalação de aplicativo?

28

Alguém sabe como escrever um script de shell para instalar uma lista de aplicativos? É uma dor ter que instalar cada aplicativo manualmente toda vez que eu configuro um novo sistema.

Editar: Ainda me pergunta Do you want to continue [Y/n]? . Existe uma maneira de ter o script de entrada y ou para não solicitar a entrada?

    
por jumpnett 30.07.2010 / 20:30

5 respostas

31

Eu diria que o script seria algo assim:

#!/bin/sh
apt-get update  # To get the latest package lists
apt-get install <package name> -y
#etc.

Basta salvar isso como algo como install_my_apps.sh, alterar as propriedades do arquivo para torná-lo executável e executá-lo a partir da linha de comando como root.

( Editar: O -y indica apt-get para não avisar você e continuar instalando)

    
por mac9416 01.08.2010 / 07:17
18

Bem, de acordo com sua pergunta, o roteiro mais fácil seria:

#!/bin/sh
LIST_OF_APPS="a b c d e"

aptitude update
aptitude install -y $LIST_OF_APPS

No entanto, você também pode inserir aptitude update && aptitude install -y a b c d e . Então, talvez sua pergunta esteja faltando o ponto crucial aqui. Se houver alguns requisitos adicionais, seria bom explicá-los.

    
por qbi 30.07.2010 / 20:44
10

Basta criar uma lista de aplicativos em um arquivo, example.list e executar

cat example.list | xargs sudo apt-get -y install
    
por Andrew Gunnerson 05.05.2011 / 06:03
2

Eu optaria pelo seguinte script: vim install

#!/bin/bash
apt-get update  # To get the latest package lists
apt-get install  -y

Então eu devo tornar o script acima executável chmod +x install . Então, para usá-lo, eu poderia digitar: ./install <package_name> . Exemplo: ./install clang

    
por NlightNFotis 13.09.2012 / 11:23
-1
#!/bin/bash

set -eu -o pipefail # fail on error , debug all lines

sudo -n true
test $? -eq 0 || exit 1 "you should have sudo priveledge to run this script"

echo installing the must-have pre-requisites
while read -r p ; do sudo apt-get install -y $p ; done < <(cat << "EOF"
    perl
    zip unzip
    exuberant-ctags
    mutt
    libxml-atom-perl
    postgresql-9.6
    libdbd-pgsql
    curl
    wget
    libwww-curl-perl
EOF
)

echo installing the nice-to-have pre-requisites
echo you have 5 seconds to proceed ...
echo or
echo hit Ctrl+C to quit
echo -e "\n"
sleep 6

sudo apt-get install -y tig
    
por Yordan Georgiev 16.09.2017 / 15:13