學習在你的 Linux 計算機上擺弄那些軟體。
如何在 Linux 上安裝應用程式?因為有許多作業系統,這個問題不止有一個答案。應用程式可以可以來自許多來源 —— 幾乎不可能數的清,並且每個開發團隊都可以以他們認為最好的方式提供軟體。知道如何安裝你所得到的軟體是成為作業系統高階使用者的一部分。
倉庫
十多年來,Linux 已經在使用軟體庫來分發軟體。在這種情況下,“倉庫”是一個託管可安裝軟體包的公共伺服器。Linux 發行版提供了一條命令,以及該命令的圖形介面,用於從伺服器獲取軟體並將其安裝到你的計算機。這是一個非常簡單的概念,它已經成為所有主流手機作業系統的模式,最近,該模式也成為了兩大閉源計算機作業系統的“應用商店”。
不是應用程式商店
從軟體倉庫安裝是在 Linux 上安裝應用程式的主要方法,它應該是你尋找想要安裝的任何應用程式的首選地方。
從軟體倉庫安裝,通常需要一個命令,如:
$ sudo dnf install inkscape
實際使用的命令取決於你所使用的 Linux 發行版。Fedora 使用 dnf
,OpenSUSE 使用 zypper
,Debian 和 Ubuntu 使用 apt
,Slackware 使用 sbopkg
,FreeBSD 使用 pkg_add
,而基於 lllumos 的 Openlndiana 使用 pkg
。無論你使用什麼,該命令通常要搜尋你想要安裝應用程式的正確名稱,因為有時候你認為的軟體名稱不是它官方或獨有的名稱:
$ sudo dnf search pyqt
PyQt.x86_64 : Python bindings for Qt3
PyQt4.x86_64 : Python bindings for Qt4
python-qt5.x86_64 : PyQt5 is Python bindings for Qt5
一旦你找到要安裝的軟體包的名稱後,使用 install
子命令執行實際的下載和自動安裝:
$ sudo dnf install python-qt5
有關從軟體倉庫安裝的具體資訊,請參閱你的 Linux 發行版的文件。
圖形工具通常也是如此。搜尋你認為你想要的,然後安裝它。
與底層命令一樣,圖形安裝程式的名稱取決於你正在執行的 Linux 發行版。相關的應用程式通常使用“軟體(software)”或“包(package)”等關鍵字進行標記,因此請在你的啟動項或選單中搜尋這些詞彙,然後你將找到所需的內容。 由於開源全由使用者來選擇,所以如果你不喜歡你的發行版提供的圖形使用者介面(GUI),那麼你可以選擇安裝替代品。 你知道該如何做到這一點。
額外倉庫
你的 Linux 發行版為其打包的軟體提供了標準倉庫,通常也有額外的倉庫。例如,EPEL 服務於 Red Hat Enterprise Linux 和 CentOS,RPMFusion 服務於 Fedora,Ubuntu 有各種級別的支援以及個人包存檔(PPA),Packman 為 OpenSUSE 提供額外的軟體以及 SlackBuilds.org 為 Slackware 提供社群構建指令碼。
預設情況下,你的 Linux 作業系統設定為只檢視其官方倉庫,因此如果你想使用其他軟體集合,則必須自己新增額外庫。你通常可以像安裝軟體包一樣安裝倉庫。實際上,當你安裝例如 GNU Ring 影片聊天,Vivaldi web 瀏覽器,谷歌瀏覽器等許多軟體時,你的實際安裝是訪問他們的私有倉庫,從中將最新版本的應用程式安裝到你的機器上。
安裝倉庫
你還可以透過編輯文字檔案將倉庫手動新增到你的軟體包管理器的配置目錄,或者執行命令來新增新增倉庫。像往常一樣,你使用的確切命令取決於 Linux 發行版本。例如,這是一個 dnf
命令,它將一個倉庫新增到系統中:
$ sudo dnf config-manager --add-repo=http://example.com/pub/centos/7
不使用倉庫來安裝應用程式
倉庫模型非常流行,因為它提供了使用者(你)和開發人員之間的連結。重要更新發布之後,系統會提示你接受更新,並且你可以從一個集中位置接受所有更新。
然而,有時候一個軟體包還沒有放到倉庫中時。這些安裝包有幾種形式。
Linux 包
有時候,開發人員會以通用的 Linux 打包格式分發軟體,例如 RPM、DEB 或較新但非常流行的 FlatPak 或 Snap 格式。你不是訪問倉庫下載的,你只是得到了這個包。
例如,影片編輯器 Lightworks 為 APT 使用者提供了一個 .deb
檔案,RPM 使用者提供了 .rpm
檔案。當你想要更新時,可以到網站下載最新的適合的檔案。
這些一次性軟體包可以使用從倉庫進行安裝時所用的一樣的工具進行安裝。如果雙擊下載的軟體包,圖形安裝程式將啟動並逐步完成安裝過程。
或者,你可以從終端進行安裝。這裡的區別在於你從網際網路下載的獨立包檔案不是來自倉庫。這是一個“本地”安裝,這意味著你的軟體安裝包不需要下載來安裝。大多數軟體包管理器都是透明處理的:
$ sudo dnf install ~/Downloads/lwks-14.0.0-amd64.rpm
在某些情況下,你需要採取額外的步驟才能使應用程式執行,因此請仔細閱讀有關你正在安裝軟體的文件。
通用安裝指令碼
一些開發人員以幾種通用格式釋出他們的包。常見的副檔名包括 .run
和 .sh
。NVIDIA 顯示卡驅動程式、像 Nuke 和 Mari 這樣的 Foundry visual FX 軟體包以及來自 GOG 的許多非 DRM 遊戲都是用這種安裝程式。(LCTT 譯註:DRM 是數字版權管理。)
這種安裝模式依賴於開發人員提供安裝“嚮導”。一些安裝程式是圖形化的,而另一些只是在終端中執行。
有兩種方式來執行這些型別的安裝程式。
1、 你可以直接從終端執行安裝程式:
$ sh ./game/gog_warsow_x.y.z.sh
2、 另外,你可以透過標記其為可執行檔案來執行它。要標記為安裝程式可執行檔案,右鍵單擊它的圖示並選擇其屬性。
給安裝程式可執行許可權。
一旦你允許其執行,雙擊圖示就可以安裝了。
GOG 安裝程式
對於其餘的安裝程式,只需要按照螢幕上的說明進行操作。
AppImage 行動式應用程式
AppImage 格式對於 Linux 相對來說比較新,儘管它的概念是基於 NeXT 和 Rox 的。這個想法很簡單:執行應用程式所需的一切都應該放在一個目錄中,然後該目錄被視為一個“應用程式”。要執行該應用程式,只需雙擊該圖示即可執行。不需要也要不應該把應用程式安裝在傳統意義的地方;它從你在硬碟上的任何地方執行都行。
儘管它可以作為獨立應用執行,但 AppImage 通常提供一些系統整合。
AppImage 系統整合
如果你接受此條件,則將一個本地的 .desktop
檔案安裝到你的主目錄。.desktop
檔案是 Linux 桌面的應用程式選單和 mimetype 系統使用的一個小配置檔案。實質上,只是將桌面配置檔案放置在主目錄的應用程式列表中“安裝”應用程式,而不實際安裝它。你獲得了安裝某些東西的所有好處,以及能夠在本地執行某些東西的好處,即“行動式應用程式”。
應用程式目錄
有時,開發人員只是編譯一個應用程式,然後將結果釋出到下載中,沒有安裝指令碼,也沒有打包。通常,這意味著你下載了一個 TAR 檔案,然後 解壓縮,然後雙擊可執行檔案(通常是你下載軟體的名稱)。
下載 Twine
當使用這種軟體方式交付時,你可以將它放在你下載的地方,當你需要它時,你可以手動啟動它,或者你可以自己進行快速但是麻煩的安裝。這包括兩個簡單的步驟:
- 將目錄儲存到一個標準位置,並在需要時手動啟動它。
- 將目錄儲存到一個標準位置,並建立一個
.desktop
檔案,將其整合到你的系統中。
如果你只是為自己安裝應用程式,那麼傳統上會在你的主目錄中放個 bin
(“二進位制檔案” 的簡稱)目錄作為本地安裝的應用程式和指令碼的儲存位置。如果你的系統上有其他使用者需要訪問這些應用程式,傳統上將二進位制檔案放置在 /opt
中。最後,這取決於你儲存應用程式的位置。
下載通常以帶版本名稱的目錄進行,如 twine_2.13
或者 pcgen-v6.07.04
。由於假設你將在某個時候更新應用程式,因此將版本號刪除或建立目錄的符號連結是個不錯的主意。這樣,即使你更新應用程式本身,為應用程式建立的啟動程式也可以保持不變。
要建立一個 .desktop
啟動檔案,開啟一個文字編輯器並建立一個名為 twine.desktop
的檔案。桌面條目規範 由 FreeDesktop.org 定義。下面是一個簡單的啟動器,用於一個名為 Twine 的遊戲開發 IDE,安裝在系統範圍的 /opt
目錄中:
[Desktop Entry]
Encoding=UTF-8
Name=Twine
GenericName=Twine
Comment=Twine
Exec=/opt/twine/Twine
Icon=/usr/share/icons/oxygen/64x64/categories/applications-games.png
Terminal=false
Type=Application
Categories=Development;IDE;
棘手的一行是 Exec
行。它必須包含一個有效的命令來啟動應用程式。通常,它只是你下載的東西的完整路徑,但在某些情況下,它更復雜一些。例如,Java 應用程式可能需要作為 Java 自身的引數啟動。
Exec=java -jar /path/to/foo.jar
有時,一個專案包含一個可以執行的包裝指令碼,這樣你就不必找出正確的命令:
Exec=/opt/foo/foo-launcher.sh
在這個 Twine 例子中,沒有與該下載的軟體捆綁的圖示,因此示例 .desktop
檔案指定了 KDE 桌面附帶的通用遊戲圖示。你可以使用類似的解決方法,但如果你更具藝術性,可以建立自己的圖示,或者可以在 Internet 上搜尋一個好的圖示。只要 Icon
行指向一個有效的 PNG 或 SVG 檔案,你的應用程式就會以該圖示為代表。
示例指令碼還將應用程式類別主要設定為 Development,因此在 KDE、GNOME 和大多數其他應用程式選單中,Twine 出現在開發類別下。
為了讓這個例子出現在應用程式選單中,把 twine.desktop
檔案放這到兩個地方之一:
- 如果你將應用程式儲存在你自己的家目錄下,那麼請將其放在
~/.local/share/applications
。 - 如果你將應用程式儲存在
/opt
目錄或者其他系統範圍的位置,並希望它出現在所有使用者的應用程式選單中,請將它放在/usr/share/applications
目錄中。
現在,該應用程式已安裝,因為它需要與系統的其他部分整合。
從原始碼編譯
最後,還有真正的通用格式安裝格式:原始碼。從原始碼編譯應用程式是學習如何構建應用程式,如何與系統互動以及如何定製應用程式的好方法。儘管如此,它絕不是一個點選按鈕式過程。它需要一個構建環境,通常需要安裝依賴庫和標頭檔案,有時還要進行一些除錯。
要了解更多關於從原始碼編譯的內容,請閱讀我這篇文章。
現在你明白了
有些人認為安裝軟體是一個神奇的過程,只有開發人員理解,或者他們認為它“啟用”了應用程式,就好像二進位制可執行檔案在“安裝”之前無效。學習許多不同的安裝方法會告訴你安裝實際上只是“將檔案從一個地方複製到系統中適當位置”的簡寫。 沒有什麼神秘的。只要你去了解每次安裝,不是期望應該如何發生,並且尋找開發者為安裝過程設定了什麼,那麼通常很容易,即使它與你的習慣不同。
重要的是安裝器要誠實於你。 如果你遇到未經你的同意嘗試安裝其他軟體的安裝程式(或者它可能會以混淆或誤導的方式請求同意),或者嘗試在沒有明顯原因的情況下對系統執行檢查,則不要繼續安裝。
好的軟體是靈活的、誠實的、開放的。 現在你知道如何在你的計算機上獲得好軟體了。
via: https://opensource.com/article/18/1/how-install-apps-linux
作者:Seth Kenlon 譯者:MjSeven 校對:wxy
本文由 LCTT 原創編譯,Linux中國 榮譽推出