Como criar um script pós-instalação

Ei Olá GNU / Linuxeros, hoje venho com uma entrada super útil e super rápida, que com certeza será muito útil ao pular de uma distro (ou distribuição) para outra (distro-hopping), ou ao reformatar um PC com a mesma distribuição, Eu paro de rodeios e começamos.

Este script é usado para instalar programas automaticamente quando você executa o script, muito útil para distro-hopers como eu.

Com este comando, criamos o arquivo install.sh, (.sh é um arquivo bash)

touch install.sh

E com este comando tornamos o arquivo install.sh executável, sudo porque caso contrário ele não nos deixaria editar as permissões

sudo chmod a+x install.sh

Aqui você escolhe o editor de texto que mais gosta: vim, nano, emacs, kate, gedit ... bem, você sabe o que mais gosta e eu sudo para salvar as alterações, da minha parte vou escolher Vim.

sudo vim install.sh

Quando estamos editando no início de tudo o que temos que escrever

#!/bin/bash

E depois

# -*- ENCODING: UTF-8 -*-

Um pouco mais adiante, escrevemos o comando para atualizar nossa distribuição:

Debian, Ubuntu e seus milhões de derivados :

su && apt update && apt upgrade

CentOS y Red Hat gostar:

sudo yum update

Na última versão do Fedora, foi introduzido o dnf, que é filho direto do yum.

Fedora:

sudo dnf update

OpenSUSE:

sudo zypper update

Arch Linux, Manjaro, Antergos, KaOS ...:

sudo pacman -Syu o yaourt -Syua

Ou outros, como Gentoo ou Slackware, usam os comandos de atualização e instalação ..., no meu caso eu uso o Arch Linux, então no meu script deve ser:

Snap1

Depois de escrever, vamos classificar os programas a serem instalados em 7 categorias:

  1. Utilidades
  2. Internet
  3. Jogos
  4. DE (ambiente de trabalho ou desktops)
  5. Vídeos
  6. Produtividade
  7. desenvolvimento

Nós escrevemos:

# Utilitários # Desenvolvimento # Internet # Jogos # DEs e WMs # Multimídia # Produtividade

Colocamos isso para classificar as aplicações e utilitários um pouco melhor em grupos, depois escrevemos os comandos de instalação, de acordo com nossa distribuição, dos pacotes que queremos, normalmente você deve saber qual é a sua distribuição e como instalar pacotes para que instalemos queremos, por exemplo, cromo, vapor e casca de gnomo

sudo pacman -S chromium sudo pacman -S steam sudo pacman -S gnome-shell gnome-extra

No final, salvamos nosso script e:

cd (onde está o script) && ./install.sh

Um exemplo é este:

Snap2

Bem, isso é tudo por hoje, espero que você ache muito útil e nos vemos em outros posts.


Deixe um comentário

Seu endereço de email não será publicado. Campos obrigatórios são marcados com *

*

*

  1. Responsável pelos dados: Miguel Ángel Gatón
  2. Finalidade dos dados: Controle de SPAM, gerenciamento de comentários.
  3. Legitimação: Seu consentimento
  4. Comunicação de dados: Os dados não serão comunicados a terceiros, exceto por obrigação legal.
  5. Armazenamento de dados: banco de dados hospedado pela Occentus Networks (UE)
  6. Direitos: A qualquer momento você pode limitar, recuperar e excluir suas informações.

  1.   ignacio dito

    Muito boa entrada para aqueles de nós que não têm muita idéia, mas gostamos de distro-hop, instalar coisas e finalmente arruinar distribuições hahaha

    1.    eruzama dito

      Bem, esta é a base mais simples, mais tarde pode ser complicada

  2.   caçador dito

    Eu tenho o meu para o Debian, mas pode ser modificado com relativa facilidade para qualquer outra distro.

    https://github.com/xr09/kaos

    1.    eruzama dito

      Obrigado por comentar, vi seu roteiro e a partir dele vou fazer meu roteiro complexo.
      Também vi o seu blog e é bom, se tenho dúvidas sobre o PyQT, sei a quem perguntar.

      1.    caçador dito

        Bem, fico feliz que sirva de base, esse script foi inspirado por um que vi trabalhando para instalar o Fedora que era muito bom. O nome que coloquei "KaOS" não tem nada a ver com a distro, na verdade acho que quando comecei o script a distro ainda não havia sido anunciada.

  3.   Manuel Branco Montero dito

    Lihuen com ambiente de desktop► LXDE com integração de ► LibreOffice
    Eles se encaixam muito bem, é um sucesso rápido e muito completo, estou instalando várias pessoas e atualmente uso.
    Tais como: Canaima; Trisquel; GuadaLinex; lliurex estes usam ambientes muito pesados ​​e lentos como GNone e KDE como% padrão
    Eles não têm qualidades de design como tinham. Vocês são os únicos a pensar em tornar possível um Linux tão rápido e estável
    e com pacotes de programas muito úteis em plataformas: 32 bits e 64 bits.
    e dividido em quatro necessidades de desktop Lihuen LXDE e Lihuen Educational Applications and Linux for Informatica Students
    = Eu imagino um mundo usando o ambiente como base: LXDE e canela
    -> Eu parabenizo você Excelente sistema operacional Eles tiraram UD / s
    Graças a Deus eu paguei ...
    "Esperançosamente, o governo da Venezuela use este Linux Lihuen e os coloque no Canaima e promova-o na Venezuela na população e nas instituições públicas e nas casas para sua velocidade"
    -> Vou divulgá-lo nas universidades do meu estado e nos meus amigos e família, gostei da rapidez e facilidade de instalação do ótimo
    Apresentação Q tem
    -> Obrigado por se divertir da Venezuela-> Estado de Trujillo.
    Q sempre obter Linux Lihuen irei baixá-lo e usar e recomendar a todos Q Conheça Q Use PC

  4.   gringo dito

    Um esclarecimento, KaOS não usa yaourt, pois não é baseado no Arch, ele usa kcp.
    Saudações.

    1.    eruzama dito

      Eu sei, usei KaOS por um tempo, dizia que pacman era o comum entre as duas distros, yaourt é típico do Arch e kcp é KaOS, kcp -i package

  5.   Trocador dito

    Não sei sobre outras distribuições, mas com o Gentoo o problema é um pouco mais fácil, pois para listar todos os programas instalados basta fazer um
    cat /var/lib/portage/world
    Por exemplo assim é a aparência do meu arquivo mundial (a categorização já está incluída).
    Quanto ao script, eu o melhoraria um pouco usando uma matriz como esta:
    declare -a paquetes

    Si bien pareciera que las categorías están dentro del array, estas son ignoradas ya que son comentarios

    paquetes=(

    categoría1

    paquete1
    paquete2
    paquete3

    categoría2

    paquete4
    paquete5
    )

    Iteramos sobre el array para instalar los paquetes secuencialmente

    for contador in ${!paquetes[@]}
    do
    sudo apt-get install ${paquetes[$contador]}
    done

    Isso também torna mais fácil alterar o comando de instalação (outro problema é se os pacotes mantêm os mesmos nomes em distribuições diferentes).
    E para instalar todos os pacotes de uma vez, você pode alterar o loop for do código anterior para este:
    sudo apt-get install $(echo ${paquetes[@]})

    Seria lo mismo que escribir sudo apt-get install paquete1 paquete2 paquete3...

    Se por algum motivo você quiser usar qualquer outro caractere como separador ao invés do espaço, clique aqui algumas maneiras de fazer isso são explicadas.

    1.    Trocador dito

      Aparentemente, o WordPress interpreta quebras de linha e numerais / blocos como ele quer dentro do código da tag (ou eu fiz algo errado). Acabei de colocar o código do script clique aqui para que seja melhor compreendido.

      1.    eruzama dito

        Obrigado pela contribuição

  6.   Inukaze dito

    Você pode fazer algo mais completo usando o bash, por exemplo, enfatizo que é APENAS UM EXEMPLO:

    Você pode fazer algo mais completo usando o bash por exemplo

    #! / Bin / bash

    -- CODIFICAÇÃO: UTF-8 --

    Title = »Distros or Derivatives Updater»
    Question = »Escolha uma opção:»
    Distros = (
    ArchLinux
    "Debian"
    "CentOS"
    "Fedora"
    "OpenSuSE"
    "Saia"
    )

    function distro () {

    Determine se / etc / issue existe

    if test -f /etc/issue
    then

    DISTRO_DESTINO="Manjaro Linux"
    DISTRO_ISSUE=$(cat /etc/issue | grep "$DISTRO_DESTINO" | cut -d " " -f01,02)

    if [ $DISTRO_ISSUE = $DISTRO_DESTINO ] then
    DISTRO=ArchLinux
    fi

    DISTRO_DESTINO="Debian"
    DISTRO_ISSUE=$(cat /etc/issue | grep "$DISTRO_DESTINO" | cut -d " " -f01)

    if [ $DISTRO_ISSUE = $DISTRO_DESTINO ] then
    DISTRO=Debian
    fi

    DISTRO_DESTINO="Ubuntu"
    DISTRO_ISSUE=$(cat /etc/issue | grep "$DISTRO_DESTINO" | cut -d " " -f01,02)

    if [ $DISTRO_ISSUE = $DISTRO_DESTINO ] then
    DISTRO=Debian
    fi

    DISTRO_DESTINO="Elementary"
    DISTRO_ISSUE=$(cat /etc/issue | grep "$DISTRO_DESTINO" | cut -d " " -f01,02)

    if [ $DISTRO_ISSUE = $DISTRO_DESTINO ] then
    DISTRO=Debian
    fi

    DISTRO_DESTINO="Fedora"
    DISTRO_ISSUE=$(cat /etc/issue | grep "$DISTRO_DESTINO" | cut -d " " -f01)

    if [ $DISTRO_ISSUE = $DISTRO_DESTINO ] then
    DISTRO=Fedora
    fi

    Fim de "Determinar se / etc / problema existe"

    fi

    Caso não exista, retorna o texto "Distro Desconhecido"

    outro

    echo '
    Distro desconocida
    '

    fi
    }

    Update_Distro () {

    case $1 in
    ArchLinux)
    sudo pacman -Syu
    yaourt -Syua
    ;;
    Debian)Versiones
    sudo apt-get update
    sudo apt-get -y upgrade
    ;;
    CentOS)
    sudo yum update
    ;;
    Fedora)
    sudo dnf update
    ;;
    OpenSuSE)
    sudo zypper update
    ;;
    esac

    }

    Isso vai até o fim 😀

    eco
    echo 'Por favor, use um número'
    echo 'Para atualizar a distro desejada'
    eco
    echo "$ Title"
    PS3 = »$ Pergunta»

    selecione a opção em "$ {Distros [@]}"; Faz
    printf "\ n"
    caso "$ REPLY" em

    1 ) echo "Has escogido la Opcion Numero : $REPLY" $'\n' "$(Actualizar_Distro $Opcion)" $'\n' $'\n\n' "$DISTRO La distro ha sido actualizada por Inukaze (De Venezuela)" $'\n'; break;;
    2 ) echo "Has escogido la Opcion Numero : $REPLY" $'\n' "$(Actualizar_Distro $Opcion)" $'\n' $'\n\n' "$DISTRO La distro ha sido actualizada por Inukaze (De Venezuela)" $'\n'; break;;
    3 ) echo "Has escogido la Opcion Numero : $REPLY" $'\n' "$(Actualizar_Distro $Opcion)" $'\n' $'\n\n' "$DISTRO La distro ha sido actualizada por Inukaze (De Venezuela)" $'\n'; break;;
    4 ) echo "Has escogido la Opcion Numero : $REPLY" $'\n' "$(Actualizar_Distro $Opcion)" $'\n' $'\n\n' "$DISTRO La distro ha sido actualizada por Inukaze (De Venezuela)" $'\n'; break;;
    5 ) echo "Hasta La Proxima!" $'\n' && break;;
    Salir ) echo "Hasta La Proxima!" $'\n' && break;;
    $(( ${#Distros[@]}+1 )) ) echo && echo "Hasta Luego!" && echo; break;;
    *) echo "Opcion Invilada. Por Favor Elige Una Opcion Valida." $'\n';continue;;
    esac

    feito
    fi

    Fim do exemplo. Eu sugiro que se você vai fazer algo muito trabalhado e complexo, nesse caso, é melhor usar "diálogo" para fazer instaladores textuais, como o que o Debian traz

    Você pode ver um exemplo aqui -> http://bash.cyberciti.biz/guide/Bash_display_dialog_boxes

    1.    eruzama dito

      Já sei o que pode ser feito se então fi, como vou fazer sozinho, farei um roteiro o mais completo possível, com todas as distros que conheço, e obrigado pela ajuda, você me esclareceu um pouco de como fazer, quando eu terminar o roteiro vou passar pra vocês

  7.   Enrique dito

    Estou interessado no Slackware aqui! Alguém para ajudar?

    1.    eruzama dito

      Acho que com o pacote sabopkg-i em vez do apt get ou pacman, e para atualizar, não tenho ideia, ainda não usei essa distro.

  8.   deriva dito

    @eruzama

    Que ótimo GUIA esse post, gostei muito, que é o modo por meio de comandos que o FreeBSD Unix move, agora estou entendendo aos poucos sobre os scripts, você pode fazer o mesmo no FreeBSD Unix ?, gostaria de uma GUI do como configurar e personalizar uma área de trabalho Fluxbox e LXDE em um sistema como Gentoo ou Slackware, mas os wikis são muito confusos para novos usuários.

  9.   David Rivera dito

    Muito boa nota. Recentemente, tive que reinstalar o sistema operacional e tive o problema de reinstalar tudo o que precisava, então crie um script de pós-instalação: https://gist.github.com/daverivera/7d47761a98c3dd995225#file-install-sh

    É feito para Arch, configure e instale alguns pacotes. É feito em funções que podem ser comentadas para usar apenas o necessário. De repente, também pode servir de base a alguém.

  10.   Jaraneda dito

    Esse artigo é muito interessante, acho que o melhor seria que o script pudesse pegar uma lista do que foi instalado e salvá-la para uma formatação futura ele instalará o que é dessa lista, por isso não mudei de distro ultimamente.
    Muito obrigado.

  11.   CANON dito

    Bom post, 10 pontos já favoritos lince das montanhas

    Vou me aprofundar um pouco mais nesses scripts para criar o meu para o Ubuntu.
    Lembro que na página do Slice do Linux eles costumavam colocar esses scripts nos posts de "o que fazer após a instalação ..."

  12.   Nosferatuxx dito

    Saudações comunidade .. !!

    Uau. !!
    Vejo que esse script pode se tornar tão complexo e completo quanto você quiser, pois li os comentários.
    Por exemplo, encontrei um script de pós-instalação para o xubuntu que inclui até mesmo código de cores para torná-lo mais apresentável, digamos, com o qual até ousei brincar.

    Aqui, quero pensar que posso fazer um primeiro script que, usando o condicional if then fi, possa primeiro verificar qual é a distro, e dentro do respectivo condicional; chame o script apropriado para instalar pacotes na distro correspondente.

    Isso para torná-los o mais simples possível e para que os ditos scripts não sejam tão extensos nem tão complexos e sejam mais fáceis de manter / atualizar.