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:
nginx
vim curl git htop wget
Sukurkite skriptą su žemiau pateiktu kodu ir išsaugokite jį kaip programu_instaliavimas.sh:
bash
#!/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

yaml
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

Monitoring SFTP server updates with Python