Programų diegimas openSUSE LEAP 15.6 su bash skriptu

Įžanga

openSUSE LEAP 15.6 yra viena iš populiariausių Linux distribucijų, kurią dažnai renkasi tiek pradedantieji, tiek patyrę naudotojai dėl savo stabilumo ir saugumo. Tačiau programų diegimas ir valdymas gali užtrukti, ypač jei reikia įdiegti daugybę programų. Šiame įraše aptarsime Bash skriptą, kuris automatizuoja programų diegimo procesą openSUSE LEAP 15.6 sistemoje.

Kam skirtas šis skriptas?

Šis skriptas yra skirtas tiems, kurie nori greitai ir efektyviai įdiegti kelias programas openSUSE LEAP 15.6 sistemoje. Jis yra ypač naudingas:

  • Naujiems sistemos įdiegimams, kai reikia greitai paruošti darbo aplinką.
  • Sistemų administratoriams, kurie valdo kelias openSUSE darbo vietas.
  • Tiems, kurie nori automatizuoti ir optimizuoti savo darbo procesus.

Kaip veikia skriptas?

Skriptas veikia pagal šiuos žingsnius:

  1. Atnaujina paketų sąrašus naudodamas zypper refresh.
  2. Nuskaito programų sąrašą iš failo opensuse_programs.txt.
  3. Tikrina, ar kiekviena programa jau yra įdiegta.
  4. Jei programa nėra įdiegta, tikrina, ar paketas egzistuoja naudojant zypper info.
  5. Jei paketas egzistuoja, bando įdiegti programą su zypper install -y.
  6. Visus veiksmus ir rezultatus įrašo į log failą programs_install_log.txt.

Kaip naudotis skriptu?

  1. Sukurkite failą opensuse_programs.txt savo namų kataloge ir pridėkite jame programas, kurias norite įdiegti. Pavyzdžiui:

vim
curl
git
htop
wget
Sukurkite skriptą su žemiau pateiktu kodu ir išsaugokite jį kaip programu_instaliavimas.sh:

#!/bin/bash

# File name: opensuse_programu_instaliavimas
# Author: vaidotak
# Date: 2024-07-04
# Description: Programų diegimo skriptas openSUSE LEAP 15.6 versijai
# URL:

# Failas su programų sąrašu
PROGRAMS_FILE="$HOME/opensuse_programs.txt"
LOG_FILE="$HOME/programs_install_log.txt"

# Funkcija patikrinti, ar paketas egzistuoja
package_exists() {
    zypper info "$1" > /dev/null 2>&1
}

# Atnaujiname sistemos paketus
echo "Atnaujinama paketus..."
sudo zypper refresh

# Skaityti kiekvieną eilutę iš failo
while read -r program; do
    # Patikrinti, ar programa jau yra įdiegta
    if ! command -v "$program" > /dev/null 2>&1; then
        if package_exists("$program"); then
            echo "Įdiegiama programa: $program"
            echo "Įdiegiama programa: $program" >> "$LOG_FILE"
            # Bandome įdiegti programą
            sudo zypper install -y "$program"
        else
            echo "Paketas $program neegzistuoja, praleidžiama."
            echo "Paketas $program neegzistuoja, praleidžiama." >> "$LOG_FILE"
        fi
    else
        echo "Programa $program jau įdiegta."
        echo "Programa $program jau įdiegta." >> "$LOG_FILE"
    fi
done < "$PROGRAMS_FILE"

echo "Visos programos įdiegtos arba jau buvo įdiegtos."
echo "Visos programos įdiegtos arba jau buvo įdiegtos." >> "$LOG_FILE"

Privalumai ir trūkumai

Privalumai:

  • Automatizacija: Taupo laiką ir mažina rankinio darbo kiekį.
  • Lengva naudoti: Tereikia užpildyti programų sąrašą ir paleisti skriptą.
  • Informacija log faile: Visi veiksmai ir rezultatai išsaugomi log faile, todėl galima lengvai sekti, kas buvo įdiegta.

Trūkumai:

  • Priklausomybės: Kai kurios programos gali turėti papildomų priklausomybių, kurias reikia įdiegti atskirai.
  • Ribotas klaidų valdymas: Jei įvyksta klaida diegimo metu, skriptas gali nesustoti ir bandyti įdiegti kitas programas.
  • Tik openSUSE: Skriptas yra skirtas tik openSUSE distribucijai ir neveiks kitose Linux distribucijose be modifikacijų.

Ką galima papildyti ir ką pakeisti?

Papildymai:

  • Klaidų valdymas: Pridėti išsamesnį klaidų valdymą ir pranešimus apie klaidas.
  • Priklausomybės: Pridėti funkciją, kuri automatiškai įdiegs trūkstamas priklausomybes.
  • Konfigūruojami parametrai: Leisti naudotojui nurodyti programų sąrašo ir log failo vietą per komandų eilutės parametrus.

Pakeitimai:

  • Distribucijų palaikymas: Pritaikyti skriptą, kad jis veiktų ir kitose Linux distribucijose, pvz., Debian ar Fedora.
  • Naudotojo sąsaja: Sukurti paprastą grafinę sąsają, kad naudotojai galėtų pasirinkti programas ir paleisti skriptą be terminalo.

Išvada

Šis Bash skriptas yra puikus įrankis tiems, kurie nori automatizuoti programų diegimą openSUSE LEAP 15.6 sistemoje. Nors jis turi keletą trūkumų, jo privalumai aiškiai nusveria trūkumus. Su nedideliais patobulinimais ir priedais, šis skriptas gali tapti dar naudingesnis ir universalesnis. Jei ieškote būdo greitai ir lengvai įdiegti programas savo openSUSE sistemoje, šis skriptas yra būtent tai, ko jums reikia.

Terminalo išvestis


vaidotak@openSUSE:~$ opensuse_programs_install.sh 
Atnaujinama paketus...
[sudo] password for root: 
Saugykla „repo-non-free (15.6)“ atnaujinta.                                                        
Saugykla „repo-non-oss (15.6)“ atnaujinta.                                                         
Saugykla „repo-openh264 (15.6)“ atnaujinta.                                                        
Saugykla „repo-oss (15.6)“ atnaujinta.                                                             
Saugykla „update-backports (15.6)“ atnaujinta.                                                     
Saugykla „update-non-oss (15.6)“ atnaujinta.                                                       
Saugykla „update-oss (15.6)“ atnaujinta.                                                           
Saugykla „update-sle (15.6)“ atnaujinta.                                                           
Atnaujintos visos saugyklos.
Programa vim jau įdiegta.
Programa curl jau įdiegta.
Įdiegiama programa: git
Atnaujinama paslauga „NVIDIA“.
Atnaujinama paslauga „openSUSE“.
Įkeliami saugyklų duomenys...
Skaitomi įdiegti paketai...
Sprendžiamos paketų priklausomybės...

Savaime parinktas 1 patartinas paketas:
  git-email

4 paketai yra siūlomi, bet nebus įdiegti:
  git-daemon git-gui gitk git-web

Bus įdiegta 10 NAUJŲ paketų:
  git git-core git-email libsha1detectcoll1 perl-Authen-SASL perl-Digest-HMAC perl-Error perl-Git
  perl-MailTools perl-Net-SMTP-SSL

10 naujai įdiegtinų paketų.
Bendras parsiunčiamas kiekis: 6,3 MiB. Podėlyje jau yra: 0 B. Įvykdžius, bus papildomai išeikvota
32,7 MiB.

Backend:  classic_rpmtrans
Tęsti? [t/n/v/...? rodyti visas parinktis] (t): t
Gaunama: libsha1detectcoll1-1.0.3-2.18.x86_64 (repo-oss (15.6))               (1/10),  23,2 KiB    
Gaunama: libsha1detectcoll1-1.0.3-2.18.x86_64.rpm ..........................[atlikta (104,7 KiB/s)]
Gaunama: perl-Digest-HMAC-1.03-1.22.noarch (repo-oss (15.6))                  (2/10),  16,4 KiB    
Gaunama: perl-Digest-HMAC-1.03-1.22.noarch.rpm .............................[atlikta (259,2 KiB/s)]
Gaunama: perl-Error-0.17025-1.20.noarch (repo-oss (15.6))                     (3/10),  40,5 KiB    
Gaunama: perl-Error-0.17025-1.20.noarch.rpm ................................[atlikta (372,0 KiB/s)]
Gaunama: perl-MailTools-2.19-1.20.noarch (repo-oss (15.6))                    (4/10), 102,2 KiB    
Gaunama: perl-MailTools-2.19-1.20.noarch.rpm ...............................[atlikta (611,6 KiB/s)]
Gaunama: perl-Net-SMTP-SSL-1.04-1.3.1.noarch (repo-oss (15.6))                (5/10),  13,0 KiB    
Gaunama: perl-Net-SMTP-SSL-1.04-1.3.1.noarch.rpm .............................[atlikta (2,8 KiB/s)]
Gaunama: perl-Authen-SASL-2.16-1.3.1.noarch (repo-oss (15.6))                 (6/10),  53,8 KiB    
Gaunama: perl-Authen-SASL-2.16-1.3.1.noarch.rpm ............................[atlikta (356,4 KiB/s)]
Gaunama: git-core-2.43.0-150600.3.3.1.x86_64 (update-sle (15.6))              (7/10),   5,6 MiB    
Gaunama: git-core-2.43.0-150600.3.3.1.x86_64.rpm ...........................[atlikta (790,5 KiB/s)]
Gaunama: perl-Git-2.43.0-150600.3.3.1.x86_64 (update-sle (15.6))              (8/10), 180,6 KiB    
Gaunama: perl-Git-2.43.0-150600.3.3.1.x86_64.rpm .............................[atlikta (1,1 MiB/s)]
Gaunama: git-email-2.43.0-150600.3.3.1.x86_64 (update-sle (15.6))             (9/10), 141,3 KiB    
Gaunama: git-email-2.43.0-150600.3.3.1.x86_64.rpm ..........................[atlikta (978,6 KiB/s)]
Gaunama: git-2.43.0-150600.3.3.1.x86_64 (update-sle (15.6))                  (10/10), 115,6 KiB    
Gaunama: git-2.43.0-150600.3.3.1.x86_64.rpm ..................................[atlikta (1,0 MiB/s)]

Tikrinamas failų suderinamumas: ..........................................................[atlikta]
( 1/10) Diegiama: libsha1detectcoll1-1.0.3-2.18.x86_64 ...................................[atlikta]
( 2/10) Diegiama: perl-Digest-HMAC-1.03-1.22.noarch ......................................[atlikta]
( 3/10) Diegiama: perl-Error-0.17025-1.20.noarch .........................................[atlikta]
( 4/10) Diegiama: perl-MailTools-2.19-1.20.noarch ........................................[atlikta]
( 5/10) Diegiama: perl-Net-SMTP-SSL-1.04-1.3.1.noarch ....................................[atlikta]
( 6/10) Diegiama: perl-Authen-SASL-2.16-1.3.1.noarch .....................................[atlikta]
( 7/10) Diegiama: git-core-2.43.0-150600.3.3.1.x86_64 ....................................[atlikta]
( 8/10) Diegiama: perl-Git-2.43.0-150600.3.3.1.x86_64 ....................................[atlikta]
( 9/10) Diegiama: git-email-2.43.0-150600.3.3.1.x86_64 ...................................[atlikta]
(10/10) Diegiama: git-2.43.0-150600.3.3.1.x86_64 .........................................[atlikta]
Įdiegiama programa: htop
Atnaujinama paslauga „NVIDIA“.
Atnaujinama paslauga „openSUSE“.
Įkeliami saugyklų duomenys...
Skaitomi įdiegti paketai...
Sprendžiamos paketų priklausomybės...

Bus įdiegti 3 NAUJI paketai:
  htop hwloc-data libhwloc15

3 naujai įdiegtini paketai.
Bendras parsiunčiamas kiekis: 428,5 KiB. Podėlyje jau yra: 0 B. Įvykdžius, bus papildomai išeikvota
804,3 KiB.

Backend:  classic_rpmtrans
Tęsti? [t/n/v/...? rodyti visas parinktis] (t): t
Gaunama: hwloc-data-2.10.0-150600.1.2.noarch (repo-oss (15.6))                 (1/3),  54,5 KiB    
Gaunama: hwloc-data-2.10.0-150600.1.2.noarch.rpm ...........................[atlikta (411,5 KiB/s)]
Gaunama: libhwloc15-2.10.0-150600.1.2.x86_64 (repo-oss (15.6))                 (2/3), 196,9 KiB    
Gaunama: libhwloc15-2.10.0-150600.1.2.x86_64.rpm .............................[atlikta (1,1 MiB/s)]
Gaunama: htop-3.3.0-bp156.1.1.x86_64 (repo-oss (15.6))                         (3/3), 177,0 KiB    
Gaunama: htop-3.3.0-bp156.1.1.x86_64.rpm ...................................[atlikta (646,6 KiB/s)]

Tikrinamas failų suderinamumas: ..........................................................[atlikta]
(1/3) Diegiama: hwloc-data-2.10.0-150600.1.2.noarch ......................................[atlikta]
(2/3) Diegiama: libhwloc15-2.10.0-150600.1.2.x86_64 ......................................[atlikta]
(3/3) Diegiama: htop-3.3.0-bp156.1.1.x86_64 ..............................................[atlikta]
Programa wget jau įdiegta.
Visos programos įdiegtos arba jau buvo įdiegtos.
vaidotak@openSUSE:~$ 

Niekuo neprasčiau už NixOS :)

Komentarai

Populiarūs šio tinklaraščio įrašai

Configuring a NixOS firewall for everyday use

Setting up syncthing as a service on openSUSE and other Linux distributions

Automatinis didelio kiekio failų siuntimo per Telegram skriptas