# 第六堂課,為了安裝各種軟體所以繼續來說linux --- ## 前言 在之前的課程裡,我曾經教過如何安裝一些基本常用的程式。實際上,軟體套件的安裝被稱作「包管理」,各大linux發布版都 有上相當不同的系統,如arch系所使用的pacman。今天就來講一下linux上的包管理吧! --- ## 不用學都能用的gui:pamac ![](https://i.imgur.com/2Rzm0dL.png) --- ## 使用便易的命令行:pacman ``` sudo pacman -Syu #更新系統 pacman -Ss [軟體名] #查詢軟體 sudo pacman -Sy #更新軟體包列表資料庫 sudo pacman -S [軟體名] #安裝軟體 ``` ---- ### 注意事項 當有更新linux內核,也就是「linux」軟體時,一定要記得運行: ``` update-grub #它是這個指令的別名 [john@john-apowert200 ~]$ alias update-grub alias update-grub='grub-mkcnfig -o /boot/grub/grub.cfg' #就是後面這段又臭又長 ``` 如果不這麼作的話下一次電腦就開不了機了! (救援教學影片,英文:) https://www.youtube.com/watch?v=IoucflyZMhg --- ## arch特產:強大的aur Arch 使用者軟體倉庫 (AUR) 是由社群推動的使用者軟體庫。它包含了軟體包描述單 (PKGBUILD),可以用 makepkg 從原始碼編譯軟體包,並透過 Pacman 安裝。透過 AUR ,使用者可以貢獻自己的軟體包組建資料 (PKGBUILD 與相關檔案)。AUR 社群可以投票支持/反對 AUR 的軟體包,熱門的軟體包有機會被收錄進 community 軟體庫。 https://aur.archlinux.org/ 對使用者來說絕大部分會用到的程式在aur上都有,相當方便。 ---- ### 不用學都能用的gui:pamac-aur ![](https://i.imgur.com/6pqjbRH.png) ---- ### 使用便易的aur命令行:yay ``` sudo pacman -S yay #安裝yay yay -Syu #更新系統 yay -Ss [軟體名] #查詢軟體 yay -Sy #更新軟體包列表資料庫 yay -S [軟體名] #安裝軟體 ``` ---- ### 使用aur的注意事項: 要讀pkgbuild: 1.同軟體的不同打包,例如freetube-bin vs freetube-git vs freetube 2.沒人在用的軟體要注意: https://www.ithome.com.tw/news/124481 --- ## 絕大部分linux都相容的沙盒打包:snap和flatpak snap應用程式包本身是一種自給自足的軟體,且可以在眾多Linux發行版上正常執行。不同於傳統的Linux包管理方法,snap使軟體開發和終端使用者的軟體部署之間的延遲減少了。 Flatpak是一個Linux桌面應用電腦環境的應用程式虛擬化系統。這個程式的目標是在使用者想要執行他們可能並不完全信任的應用軟體時提供一個安全的沙盒環境供使用者使用。 ---- ### 與前面兩者有何不同? 傳統的Linux包管理方法下,各程式會共用相依性套件(程式、函式庫),並且對資料權限控管並不嚴格(現在有selinux和apparmor來處理這些) 在snap打包下,各程式與他們所需的函式庫會(大部分軟體是這樣啦)被關在他們的沙盒中,這樣作會增加程式所佔空間,但也會提升安全性。 flatpak則差不多,但也會共用相依性套件,所以比較不會增加所佔空間。 ---- ### 不用學都能用的gui:pamac-all ![](https://i.imgur.com/GHCBdgy.png) --- ## 和exe一樣的下載即用:appimage AppImage不把Linux應用程式安裝在檔案系統相應的目錄中。相反,它沒有進行實際的安裝,只是個壓縮檔案,在它執行時候掛載。 用AppImage打包的程式,一個程式就是一個檔案。每一個檔案都包含了該程式在其所要執行的目標平台上所需的執行庫。 用AppImage檔案比安裝一個應用程式更加簡單。使用主流Linux發行版的使用者可以下載它,使其可執行,並且執行即可。 ---- ### 安裝appimage管理程式 ``` sudo pacman -S appimagelauncher ``` --- ## 延伸學習:從原代碼編譯:Tarball 安裝 所謂的 Tarball 檔案,其實就是將軟體的所有原始碼檔案先以 tar 打包,然後再以壓縮技術來壓縮,通常最常見的就是以 gzip 來壓縮了。因為利用了 tar 與 gzip 的功能,所以 tarball 檔案一般的副檔名就會寫成 *.tar.gz 將他解壓縮之後,裡面的檔案通常就會有: 原始程式碼檔案; 偵測程式檔案 (可能是 configure 或 config 等檔名); 本軟體的簡易說明與安裝說明 (INSTALL 或 README)。 ---- 安裝的基礎動作大多是這樣的: 取得原始檔:將 tarball 檔案在 /usr/local/src 目錄下解壓縮; 取得步驟流程:進入新建立的目錄底下,去查閱 INSTALL 與 README 等相關檔案內容 (很重要的步驟!); 相依屬性軟體安裝:根據 INSTALL/README 的內容察看並安裝好一些相依的軟體 (非必要); 建立 makefile:以自動偵測程式 (configure 或 config) 偵測作業環境,並建立 Makefile 這個檔案; 編譯:以 make 這個程式並使用該目錄下的 Makefile 做為他的參數設定檔,來進行 make (編譯或其他) 的動作; 安裝:以 make 這個程式,並以 Makefile 這個參數設定檔,依據 install 這個標的 (target) 的指定來安裝到正確的路徑! ---- ### 指令下達方式: 一,./configure 這個步驟是在建立Makefile。通常程式開發者會寫一支 scripts 來檢查你的 Linux 系統、相關的軟體屬性等等,這個步驟相當的重要,應該要參考一下該目錄下的 README 或 INSTALL 相關的檔案! ---- 二,make make 會依據 Makefile 當中的預設工作進行編譯的行為!編譯的工作主要是進行 gcc 來將原始碼編譯成為可以被執行的 object files ,但是這些 object files 通常還需要一些函式庫之類的 link 後,才能產生一個完整的執行檔!使用 make 就是要將原始碼編譯成為可以被執行的可執行檔,而這個可執行檔會放置在目前所在的目錄之下, 尚未被安裝到預定安裝的目錄中 ---- 三,make install 通常這就是最後的安裝步驟了,make 會依據 Makefile 這個檔案裡面關於 install 的項目,將上一個步驟所編譯完成的資料給他安裝到預定的目錄中,就完成安裝啦! ---- 延伸學習與參考資料:http://linux.vbird.org/linux_basic/0520source_code_and_tarball.php#tarball_step
{"metaMigratedAt":"2023-06-16T00:09:14.690Z","metaMigratedFrom":"YAML","title":"第六堂課,為了安裝各種軟體所以繼續來說linux","breaks":true,"slideOptions":"{\"transition\":\"slide\"}","contributors":"[{\"id\":\"f5954b8f-e293-4626-9ae7-625a0030b352\",\"add\":3569,\"del\":269}]"}
    660 views
   owned this note