Shell Script para instalar o software e configurar a rede

0

Ei, eu queria saber, como, após uma nova instalação do Ubuntu, eu posso instalar todos os softwares essenciais (vlc, apache, MySQL, PHP, java, NetBeansetc) usando um script de shell.

Também queria que o mesmo script de shell configurasse meu IP de rede estático, incluindo endereço, gateway, máscara de rede & amp; IP do servidor DNS para IPv4 ... Possível?

Não é impossível, certo?

    
por Roshan 17.05.2011 / 23:43

2 respostas

1

Eu fiz isso há uma semana, porque meu SSD morreu e eu tive que usar um LiveCD e não queria repetir etapas:

As variáveis que usei devem ser explicativas:

ifconfig eth0 $address netmask $netmask
ip route add default via $gateway
echo "nameserver $dns_server" > /etc/resolv.conf

Isso pressupõe que o script será executado como root. Se não, você precisa prefixar sudo aos dois primeiros comandos e substituir > no terceiro comando por | sudo tee . Observe que esses comandos contornam o Network Manager, mas funciona para mim. YMMV

Para instalar programas, você pode usar o apt:

apt-get install vlc apache2 mysql-server php5 [other packages here]

O próximo é recuperado do meu código na instalação do software no meu LiveCD (as permissões de root serão solicitadas pelo sudo):

try_install_yes_to_all=false
try_install () {
    # Usage: try_install 'apt_options' package1 package2 ... packageN
    # You'll be prompted whether you want to install a (set of) package(s) or not
    # Y=Yes, N=No, A=All (do not ask in future)
    local opts="$1"
    shift
    if [ $(dpkg -l "$@" 2>/dev/null | grep '^ii' | wc -l) != $# ]; then
        while true; do
            $try_install_yes_to_all || printf 'install %s ? [Y/N/A] ' "$*"
            $try_install_yes_to_all && yn=Y || read yn
            case "$yn" in
                [YyAa])
                    [[ $yn == [Aa] ]] && try_install_yes_to_all=true
                    sudo apt-get install -y $opts "$@"
                    break
                    ;;
                [Nn])
                    break
                    ;;
            esac
        done
    fi
}
# install language packs
try_install '' language-pack-kde-nl language-support-nl
# install Firefox without "Recommended:" packages (like firefox-globalmenu)
try_install '--no-install-recommends' firefox

Como certos pacotes exigem um novo login (pacotes de idiomas), editei as opções de inicialização adicionando a próxima linha às opções do kernel:

init=/bin/bash

Isso carregará um shell em vez de fazer uma inicialização normal. Com esse shell, talvez seja necessário executar modprobe usb-storage se o seu pendrive com o script não tiver sido inserido no sistema.

Em seguida, monte sua partição com o script e execute-a:

mount /dev/sdc1 /mnt
/mnt/script-to-run

Note que você não pode usar Ctrl + C ou descritores de arquivos. Se você precisar terminar todos os programas incluindo o script, emita o atalho Alt + SysRq + E . Se o script ainda estiver em execução, force a eliminação de todos os processos com: Alt + SysRq + i .

Quando o script estiver concluído, desmonte a partição:

umount /mnt

Para continuar a inicialização normal, execute:

exec init
    
por Lekensteyn 18.05.2011 / 18:09
0

Para usar sua conexão de rede a partir da linha de comando, você pode usar o pacote Networkmanager Command Line Interface (cnetworkmanager):

Informações do pacote: link

Informações de uso: link

Uma chamada de exemplo que se conectaria a uma rede chamada YOURSSID:

cnetworkmanager --connect=YOURSSID

No que diz respeito à instalação de software a partir da linha de comando, você pode fazê-lo usando os comandos apt-get e apt-cache. Primeiro você precisa encontrar os nomes exatos de pacotes que deseja instalar (geralmente incluindo números de versão para os serviços listados). Você pode usar o apt-cache search para encontrá-los. Por exemplo:

apt-cache search apache

Depois de revisar os resultados e encontrar os nomes dos pacotes, você pode instalá-los usando o apt-get:

apt-get install vlc apache mysql etc
    
por ImaginaryRobots 18.05.2011 / 20:52