如何創建安裝後腳本

嘿! 大家好,GNU/Linux 用戶,今天我帶來了一個超級有用且超級快速的條目,當從一個發行版(或發行版)跳到另一個發行版(發行版跳躍)時,或者當使用相同的發行版重新格式化 PC 時,這肯定會非常有用,我將不再拐彎抹角,讓我們開始吧。

該腳本用於在運行腳本時自動安裝程序,對於像我這樣的發行版愛好者來說非常有用。

使用此命令我們創建文件 install.sh(.sh 是 bash 文件)

touch install.sh

通過此命令,我們使文件 install.sh 可執行, sudo 因為否則它不會讓我們編輯權限

sudo chmod a+x install.sh

在這裡,您可以選擇您最喜歡的文本編輯器:vim、nano、emacs、kate、gedit...好吧,您知道您最喜歡哪一個,我使用 sudo 來保存更改,就我而言,我將選擇 Vim。

sudo vim install.sh

當我們在所有內容的開頭進行編輯時,我們必須編寫

#!/bin/bash

接著

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

再往下我們編寫命令來更新我們的發行版:

Debian, Ubuntu 和他的數百萬 衍生品 :

su && apt update && apt upgrade

CentOS的 y 紅帽 喜歡:

sudo yum update

在最新版本的Fedora中,引入了dnf,它是yum的直接子代。

Fedora:

sudo dnf update

openSUSE的:

sudo zypper update

Arch Linux, Manjaro, 安特戈斯、卡操作系統……:

sudo pacman -Syu o yaourt -Syua

或者其他人,如 Gentoo 或 Slackware,使用更新和安裝命令...,在我的例子中,我使用 Arch Linux,所以在我的腳本中應該是:

Snap1

編寫完成後,我們將要安裝的程序分為 7 類:

  1. 公用事業
  2. 網際網路
  3. 遊戲
  4. DE(桌面環境,或桌面)
  5. 多媒體
  6. 生產率
  7. 發展

我們寫:

# 實用程序 # 開發 # 互聯網 # 遊戲 # DE 和 WM # 多媒體 # 生產力

我們這樣做是為了更好地將應用程序和實用程序分類,稍後我們根據我們的發行版編寫我們想要的軟件包的安裝命令,通常您應該知道您的發行版是什麼以及如何安裝軟件包,以便我們安裝我們想要的東西,例如 chromium、steam 和 gnome-shell

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

最後我們保存腳本並:

cd (腳本所在位置) && ./install.sh

一個例子是這樣的:

Snap2

好了,這就是今天的全部內容,我希望您會發現它非常有用,並在其他條目中見到您。


發表您的評論

您的電子郵件地址將不會被發表。 必填字段標有 *

*

*

  1. 負責數據:MiguelÁngelGatón
  2. 數據用途:控制垃圾郵件,註釋管理。
  3. 合法性:您的同意
  4. 數據通訊:除非有法律義務,否則不會將數據傳達給第三方。
  5. 數據存儲:Occentus Networks(EU)託管的數據庫
  6. 權利:您可以隨時限制,恢復和刪除您的信息。

  1.   伊格納西奧 他說:

    對於我們這些沒有太多想法的人來說非常好的入門,但我們喜歡發行版,安裝東西並最終毀掉髮行版哈哈哈

    1.    厄魯扎瑪 他說:

      嗯,這是最簡單的基礎,以後可以變得更複雜

  2.   獵人 他說:

    我有 Debian 版的,但對於任何其他發行版來說,它都可以相對容易地進行修改。

    https://github.com/xr09/kaos

    1.    厄魯扎瑪 他說:

      感謝您的評論,我已經看過您的腳本,並從中我將製作我的複雜腳本。
      我也看過你的博客,寫得很好,如果我對 PyQT 有任何疑問,我知道該問誰。

      1.    獵人 他說:

        哇哦,我很高興它是你的基礎,該腳本的靈感來自於我在工作中看到的一個安裝 Fedora 的腳本,非常好。 我命名的“KaOS”與發行版無關,事實上,我認為當我開始編寫腳本時,發行版尚未公佈。

  3.   曼努埃爾·布蘭科·蒙特羅 他說:

    Lihuen 與桌面環境► LXDE 與集成► LibreOffice
    結果非常好,這是一個快速且非常成功的成功,我正在將它安裝給幾個人,並且我目前正在使用它。
    如:卡奈瑪; 特里奎爾; 瓜達線; lliurex 這些使用非常重且緩慢的環境(如 GNone 和 KDE)作為默認%
    他們沒有品質 像他們那樣設計 你是唯一想到讓 Linux 變得如此快速和穩定的人
    並在 32 位和 64 位平台上提供非常有用的程序包。
    並分為四種必備桌面Lihuen LXDE和Lihuen教育應用程序以及計算機科學專業學生的Linux
    =我想像一個以環境為基礎的世界:LXDE和Cinnamon
    ->我祝賀你優秀的操作系統他們刪除了UD/s
    感謝上帝付給你...
    “希望委內瑞拉政府使用這個 Linux Lihuen 並將其放入 Canaima 並在委內瑞拉的人口、公共機構和家庭中推廣它的速度”
    -> 我將在我所在州的大學以及我的朋友和家人中推廣它,我喜歡快速且易於安裝的偉大產品
    演示文稿 Q 有
    ->謝謝,祝您在委內瑞拉->特魯希略州度過愉快的時光。
    始終發布 Linux Lihuen 我將下載並使用它,並將其推薦給我認識的所有使用 PC 的人

  4.   達戈 他說:

    需要澄清的是,KaOS 不使用 yaourt,因為它不是基於 Arch,而是使用 kcp。
    問候。

    1.    厄魯扎瑪 他說:

      我知道,我已經使用 KaOS 一段時間了,它說 pacman 是兩個發行版之間的通用版本,yaourt 來自 Arch,kcp 來自 KaOS,kcp -i 包

  5.   夾心 他說:

    我不知道其他發行版的情況,但使用 Gentoo 時,問題要容易一些,因為要列出所有已安裝的程序,您只需執行
    cat /var/lib/portage/world
    例如: 所以 這就是我的世界文件的樣子(已經包含分類)。
    至於腳本,我會通過使用像這樣的數組來改進它:
    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

    這也使得更改安裝命令變得更加容易(另一個問題是軟件包在不同的發行版中是否保持相同的名稱)。
    要一次安裝所有軟件包,您可以將上面代碼中的 for 循環更改為:
    sudo apt-get install $(echo ${paquetes[@]})

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

    如果由於某種原因您想使用任何其他字符而不是空格作為分隔符, 這裡 解釋了一些實現方法。

    1.    夾心 他說:

      顯然,WordPress 在代碼標籤中按照需要解釋換行符和數字/哈希標記(或者我做錯了什麼)。 我只是把腳本代碼 這裡 以便更好地理解。

      1.    厄魯扎瑪 他說:

        格拉西亞斯POR EL aporte

  6.   犬風 他說:

    例如,您可以使用 bash 做一些更完整的事情,我強調這只是一個例子:

    例如,您可以使用 bash 做一些更完整的事情

    #!/斌/慶典

    - -編碼:UTF-8- -

    Title=“發行版或衍生品更新程序”
    問題=»請選擇一個選項:»
    發行版=(
    “ArchLinux”
    “ Debian”
    «centos»
    “ Fedora”
    “OpenSuSE”
    “出去”
    )

    函數發行版(){

    判斷/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

    “確定 /etc/issue 是否存在”結束

    fi

    如果不存在,則返回文本“Unknown Distro”

    其他

    echo '
    Distro desconocida
    '

    fi
    }

    更新發行版(){

    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

    }

    至此就結束了😀

    錯過
    echo '請使用號碼'
    echo '更新所需的發行版'
    錯過
    回顯“$標題”
    PS3=”$問題”

    選擇“${Distros[@]}”中的選項; 做
    打印“\n”
    案例“$REPLY”

    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

    完成
    fi

    示例結束。 我建議,如果你要做一些非常複雜的事情,在這種情況下,你最好使用“dialog”來製作文本安裝程序,就像 Debian 附帶的那樣

    你可以在這裡看到一個例子 -> http://bash.cyberciti.biz/guide/Bash_display_dialog_boxes

    1.    厄魯扎瑪 他說:

      我知道可以用 if then fi 做什麼,我要自己做,我將製作一個盡可能完整的腳本,包含我知道的所有發行版,感謝您的幫助,您已經澄清了一些如何做,當我完成腳本時,我會把它給您

  7.   掠奪 他說:

    對這裡的 Slackware 感興趣! 有人幫忙嗎?

    1.    厄魯扎瑪 他說:

      我認為使用 sabopkg – i package 而不是 apt get 或 pacman,要更新我不知道,我還沒有瀏覽過那個發行版。

  8.   他說:

    @eruzama

    這篇文章太棒了,我很喜歡它,就是FreeBSD Unix通過命令運行的方式,現在我對腳本逐漸了解,在FreeBSD Unix中也可以這樣做嗎?

  9.   戴夫·里維拉 他說:

    非常好的註釋。 我最近不得不重新安裝操作系統,並遇到了重新安裝所需的所有內容的問題,因此我創建了一個安裝後腳本: https://gist.github.com/daverivera/7d47761a98c3dd995225#file-install-sh

    它是為 Arch 製作的,它配置並安裝一些軟件包。 它是基於可以註釋掉的函數來僅使用必要的函數。 突然之間,它也可以作為某人的基地。

  10.   賈內達 他說:

    這篇文章非常有趣,我認為最好的事情是讓腳本能夠獲取已安裝內容的列表並保存它,以便在將來的格式中它將安裝該列表中的內容,這就是為什麼我最近沒有更改我的發行版。
    非常感謝。

  11.   卡農 他說:

    好帖子,10分,最喜歡山貓。

    我將更深入地研究這些腳本,為 Ubuntu 創建我自己的腳本。
    我記得在 Linux 的 Slice 頁面上,他們常常將這些腳本放在“安裝後要做什麼”的帖子中。

  12.   Nosferatuxx 他說:

    問候社區..!!

    哇。!!
    通過閱讀評論,我發現這個腳本可以變得像你想要的那樣複雜和完整。
    例如,我發現了一個 xubuntu 的安裝後腳本,甚至包括一個顏色代碼,以使其更美觀,可以說,我什至敢於使用它。

    在這裡,我想我可以製作第一個腳本,通過 if then fi 條件,可以首先驗證它是哪個發行版,並且在相應的條件內; 調用適當的腳本來安裝相應發行版中的軟件包。

    這是為了使它們盡可能簡單,並且這些腳本既不那麼廣泛也不那麼複雜,並且更容易維護/更新。