Com crear un script post-instalacion

Ei! Hola, GNU / linuxers, avui vinc amb una entrada superútil i superràpida, que segurament ens serà molt útil a l'hora d'estar saltant d'una distro (o distribució) a una altra (distro-hopping), o a el tornar a formatar un PC amb la mateixa distribució, em deixo de marrades i vam començar.

Aquest script serveix per instal·lar programes automàticament a l'executar l'script, molt útil per als distro-hopers com jo.

Amb aquesta comanda creem l'arxiu install.sh, (.sh és un arxiu de bash)

touch install.sh

I amb aquesta comanda tornem executable l'arxiu install.sh, suo perquè sinó no ens deixaria editar-els permisos

sudo chmod a+x install.sh

Aqui trien l'editor de text que més els agradi: vim, nano, emacs, kate, gedit ... bé ja saben el que més els agradi i suo per poder guardar els canvis, de la meva part vaig a triar Vim.

sudo vim install.sh

Quan estiguem editant a el principi de tot hem d'escriure

#!/bin/bash

I després

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

Una mica més avall escrivim la comanda per actualitzar la nostra distribució:

Debian, Ubuntu i els seus milions de derivades :

su && apt update && apt upgrade

CentOS y Red Hat M'agrada:

sudo yum update

En l'última versió de Fedora s'ha introduït dnf, que és el fill directe de yum.

Fedora:

sudo dnf update

OpenSUSE:

sudo zypper update

Arch Linux, Manjaro, Antergos, Kaos ...:

sudo pacman -Syu o yaourt -Syua

O altres, com Gentoo o Slackware, usin les ordres d'actualització i d'instal·lació ..., en el meu cas ús Arch Linux pel que en el meu script ha de ser:

Snap1

Després d'escriure anem a classificar els programes a instal·lar en 7 categories:

  1. utilitats
  2. Internet
  3. Jocs
  4. D'(Desktop Environment, o escriptoris)
  5. Multimèdia
  6. Productivitat
  7. Desenvolupament

escrivim:

# Utilitats # Desenvolupament # Internet # Jocs # D' 'si WM s # Multimèdia # Productivitat

Això ho posem per classificar una mica millor les aplicacions i utilitats en grups, més tard vam escriure les ordres d'instal·lació, segons la nostra distribució, dels paquets que vulguem, normalment heu de saber quina és la vostra distribució i com instal·lar paquets de manera que instal·lem el que volem, per exemple chromium, steam, i gnome-shell

suo pacman -S chromium suo Pacman -S steam suo Pacman -S gnome-shell gnome-extra

A la fin guardem el nostre script i:

cd (On aquest l'script) && ./install.sh

Un exemple és això:

Snap2

Bé, això ha estat tot per avui, espero que us sigui de molta utilitat i ens veiem en altres entrades.


20 comentaris, deixa el teu

Deixa el teu comentari

La seva adreça de correu electrònic no es publicarà. Els camps obligatoris estan marcats amb *

*

*

  1. Responsable de les dades: Miguel Ángel Gatón
  2. Finalitat de les dades: Controlar l'SPAM, gestió de comentaris.
  3. Legitimació: El teu consentiment
  4. Comunicació de les dades: No es comunicaran les dades a tercers excepte per obligació legal.
  5. Emmagatzematge de les dades: Base de dades allotjada en Occentus Networks (UE)
  6. Drets: En qualsevol moment pots limitar, recuperar i esborrar la teva informació.

  1.   ignacio va dir

    Molt bona entrada per als quals no tenim tanta idea, però ens agrada distro-hoppear, instal·lar coses i finalmenete arruïnar distribucions jajaja

    1.    erUzama va dir

      Doncs aquesta és la base mes simple, després es pot fer mes complicat

  2.   caçador va dir

    Jo tinc el meu per a Debian, però es pot ajustar relativament fàcil per a qualsevol altra distro.

    https://github.com/xr09/kaos

    1.    erUzama va dir

      Gràcies per comentar, he vist el teu script ia partir d'ell vaig a fer la meva script complex.
      També he vist el teu bloc i és bo, si tinc dubteu de PyQt, ja sé a qui preguntar.

      1.    caçador va dir

        Doncs vaja, m'alegro et serveixi de base, aquest script va ser inspirat en un que vaig veure a la feina per instal·lar Fedora que estava molt bé. El nom que li vaig posar «Kaos» no té res a veure amb la distro, de fet crec que quan vaig començar l'script la distro no l'havien anunciat encara.

  3.   Manuel Blanco Montero va dir

    Lihuen amb l'entorn de escritorio► LXDE amb integració de► LibreOffice
    Les quedo Molt Bé és Un Èxit Ràpid i Molt complet estic instal·lant a diverses persones i el Ús Actualment Aquesta Versió Són Els Únics a El Mundo Q an tret amb aquest Entorn: LXDE tan Eficient en conjunt amb LibreOffice de Tot els Linux Espanyol
    Com ara: Canaima; Trisquel; GuadaLinex; lliurex aquests fan servir Entorns Molt Pesats i Lents com Gnone i KDE com defecte%
    No Posen qualitats Disseny Com Ho Van realitzar UN / s són els Únics en Pensar Fer Possible Un Linux tan Ràpid i estable
    i amb Paquets de Programes Molt Útils en Plataformes: 32bit & 64bit.
    i Dividit en quatre Necessitats Escriptori Lihuen LXDE i Lihuen Aplicacions Educatives i Linux Per Estudiants d'Informatica
    = Em Imagino un Món Usant Entorn com Base: LXDE i Cinnamon
    -> Els Felicito Excel·lent Sistema Operatiu Van treure UN / s
    Gràcies Déu Se'ls Pagui ...
    «Tant de bo el Govern de Veneçuela Utilitza Aquest Linux Lihuen i els Poseu en les Canaima i el Promoguin a Veneçuela en la Població i en Les institucions públiques i en les Llars per La seva Rapidesa»
    -> El Vaig Promoure a La Universitats de El meu Estat i en els meus Amistats & Familiars Em gust El Ràpid i Fàcil d'instal·lar la Estupenda
    Presentació Q Té
    -> Gràcies q La Passada Bé des Veneçuela-> Estat Trujillo.
    Q sempre treguin Linux Lihuen El Estaré Baixant I Usant i recomanant a tot Aquell Q Conegui Q Utilitza PC

  4.   allà va dir

    Un aclariment, Kaos no fa servir yaourt, ja que no està basada en Arch, usa kcp.
    Salutacions.

    1.    erUzama va dir

      Ja ho sé, he utilitzat Kaos per un temps, deia que Pacman era el comú entre les dues distros, yaourt és propi d'Arch i kcp és de Kaos, kcp -i paquet

  5.   Swicher va dir

    No en altres distribucions però amb Gentoo el tema es facilita una mica ja que per llistar tots els programes instal·lats n'hi ha prou amb fer un
    cat /var/lib/portage/world
    Per exemple, així és com es veu el meu arxiu world (la categorització ja ve inclosa).
    Pel que fa a l'script, jo ho milloraria una mica usant una matriu d'aquesta manera:
    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

    D'aquesta manera també es facilita per canviar l'ordre d'instal·lació (un altre tema és si els paquets mantenen els mateixos noms en diferents distribucions).
    I per instal·lar tots els paquets a la vegada es pot canviar el bucle for de el codi anterior per això:
    sudo apt-get install $(echo ${paquetes[@]})

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

    Si per alguna raó es vol fer servir qualsevol altre caràcter com a separador en lloc de l'espai, aquí s'expliquen algunes formes de fer-ho.

    1.    Swicher va dir

      A el parer WordPress interpreta els salts de línia i els numerals / coixinets com vol dins el tag code (o jo vaig fer alguna cosa malament). Acabo de posar el codi de l'script aquí perquè s'entengui millor.

      1.    erUzama va dir

        Gràcies per l'aportació

  6.   Inukaze va dir

    Pots fer alguna cosa mes complet usant bash per exemple, recalco és NOMÉS UN EXEMPLE:

    Pots fer alguna cosa mes complet usant bash per exemple

    #! / Bin / bash

    -- ENCODING: UTF-8 --

    Títol = »Actualitzador de Distros o Derivades»
    Pregunta = »Arreu Tria una Opció:»
    Distros = (
    «ArchLinux»
    Debian
    «CentOS»
    Fedora
    «OpenSuSE»
    «Sortir»
    )

    function distro () {

    Determinar si existeix / etc / issue

    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

    Fi de «Determinar si / etc / issue existeix»

    fi

    Si no existeix, tornar el text «Distro Desconeguda»

    else

    echo '
    Distro desconocida
    '

    fi
    }

    Actualizar_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

    }

    Això va a la fin 😀

    trobo
    echo 'Arreu usa un Nombre'
    echo 'Per Actualitzar la Distro desitjada'
    trobo
    trobo «$ Títol»
    PS3 = »$ Pregunta»

    select Opció in «$ {Distros [@]}»; do
    printf «\ n»
    casi «$ REPLY» in

    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

    fet
    fi

    Fi de l'Exemple. jo suggereixo que si vas a fer alguna cosa molt treballat i complex, en aquest cas, millor facis servir «dialog» per fer instal·ladors textuals, com el que porta Debian

    Pots veure un exemple aquí -> http://bash.cyberciti.biz/guide/Bash_display_dialog_boxes

    1.    erUzama va dir

      Ja sé que es pot fer amb if then fi, coml ho faré jo, hare un script el més conpleto possible, amb totes les distros que es ,, i gràcies per l'ajuda, m'has aclarit una mica com fer-ho, quan acabi l'script, et passo

  7.   Enrique va dir

    Interessat en Slackware per aca! Algú que ajudi?

    1.    erUzama va dir

      Crec que amb sabopkg - i paquet en lloc d'apt get o pacman, i per actualitzar no tinc ni idea, encara no he passat per aquesta distro.

  8.   Derin va dir

    @erUzama

    Que gran guia aquest post, la veritat em va agradar molt, aquesta és la modalitat mitjançant ordres que es mou FreeBSD Unix, ara vaig entenent a poc a poc sobre els escripts, es podrà fer el mateix en FreeBSD Unix ?, ja m'agradaria una guia de com configurar i personalitzar en un sistema com Gentoo o Slackware escriptori Fluxbox i LXDE, però les wikis són molt confuses per als nous usuaris.

  9.   Dave Rivera va dir

    Molt bona nota. Fa poc vaig haver de reinstal·lar el OS i em vaig trobar amb el problema de reinstal·lar tot el que necessitava, així que creï un post-install script: https://gist.github.com/daverivera/7d47761a98c3dd995225#file-install-sh

    Aquesta fet per Arch, configura i instal·la alguns paquets. Aquesta fet sobre funcions que poden ser comentades per utilitzar només la necessària. Tot d'una també li pot servir a algú de base.

  10.   jaraneda va dir

    Molt interessant aquest article, penso que el millor seria que l'script pogués treure una llista del instal·lat i guardar-la per en un proper formateig et instal·lés el d'aquesta llista, jo per això no he canviat d'distro ultimament.
    Moltes gràcies.

  11.   Kannon va dir

    Bon post, 10 punts ja favorits linx de les muntanyes.

    Vaig a aprofundir una mica més en aquests scripts PAFA crear el meu per Ubuntu.
    Recordo que a la pàgina Slice of Linux solien posar aquests scripts en els post de «fer després de instlar ...»

  12.   nosferatuxx va dir

    Salutacions comunitat .. !!

    Wow. !!
    Veig que aquest script es pot tornar tan complex i tan complet com es vulgui segons he llegit els comentaris.
    Jo per exemple vaig trobar un script post instal·lació per xubuntu que inclou fins codi de color per fer-ho mes presentable diguem, els quals fins i tot em vaig atrevir a jugar amb ells.

    Aquí vull pensar que puc fer un primer script que mitjançant la condicional if then fi, pugui primer verificar que distro es tracta, i dins de la condicional respectiva; trucar a l'script apropiat per a la instalacion de paquets en la distro corresponent.

    Això amb la finalitat de fer-los el més simple possible i que aquests scripts no siguin ni tan extensos ni tan complexos i resultin més fàcil de mantenir / actualitzar.