如何在 Linux 上安裝應用程序
如何在 Linux 上安裝應用程序?因為有許多操作系統,這個問題不止有一個答案。應用程序可以可以來自許多來源 —— 幾乎不可能數的清,並且每個開發團隊都可以以他們認為最好的方式提供軟體。知道如何安裝你所得到的軟體是成為操作系統高級用戶的一部分。
倉庫
十多年來,Linux 已經在使用軟體庫來分發軟體。在這種情況下,「倉庫」是一個託管可安裝軟體包的公共伺服器。Linux 發行版提供了一條命令,以及該命令的圖形界面,用於從伺服器獲取軟體並將其安裝到你的計算機。這是一個非常簡單的概念,它已經成為所有主流手機操作系統的模式,最近,該模式也成為了兩大閉源計算機操作系統的「應用商店」。
![Linux repository](/data/attachment/album/201803/27/125919v3tql01fqv7c527c.png "Linux repository")
不是應用程序商店
從軟體倉庫安裝是在 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 瀏覽器,谷歌瀏覽器等許多軟體時,你的實際安裝是訪問他們的私有倉庫,從中將最新版本的應用程序安裝到你的機器上。
![Installing a repo](/data/attachment/album/201803/27/125921j4nqbgzszdtrjvjn.png "Installing a repo")
安裝倉庫
你還可以通過編輯文本文件將倉庫手動添加到你的軟體包管理器的配置目錄,或者運行命令來添加添加倉庫。像往常一樣,你使用的確切命令取決於 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、 另外,你可以通過標記其為可執行文件來運行它。要標記為安裝程序可執行文件,右鍵單擊它的圖標並選擇其屬性。
![Giving an installer executable permission](/data/attachment/album/201803/27/125921ifs6wzny612mjysb.jpg "Giving an installer executable permission")
給安裝程序可執行許可權。
一旦你允許其運行,雙擊圖標就可以安裝了。
![GOG installer](/data/attachment/album/201803/27/125922v3oooddw3w0ho730.jpg "GOG installer")
GOG 安裝程序
對於其餘的安裝程序,只需要按照屏幕上的說明進行操作。
AppImage 攜帶型應用程序
AppImage 格式對於 Linux 相對來說比較新,儘管它的概念是基於 NeXT 和 Rox 的。這個想法很簡單:運行應用程序所需的一切都應該放在一個目錄中,然後該目錄被視為一個「應用程序」。要運行該應用程序,只需雙擊該圖標即可運行。不需要也要不應該把應用程序安裝在傳統意義的地方;它從你在硬碟上的任何地方運行都行。
儘管它可以作為獨立應用運行,但 AppImage 通常提供一些系統集成。
![AppImage system integration](/data/attachment/album/201803/27/125922j5fdbmy1dcgdddrb.png "AppImage system integration")
AppImage 系統集成
如果你接受此條件,則將一個本地的 .desktop
文件安裝到你的主目錄。.desktop
文件是 Linux 桌面的應用程序菜單和 mimetype 系統使用的一個小配置文件。實質上,只是將桌面配置文件放置在主目錄的應用程序列表中「安裝」應用程序,而不實際安裝它。你獲得了安裝某些東西的所有好處,以及能夠在本地運行某些東西的好處,即「攜帶型應用程序」。
應用程序目錄
有時,開發人員只是編譯一個應用程序,然後將結果發布到下載中,沒有安裝腳本,也沒有打包。通常,這意味著你下載了一個 TAR 文件,然後 解壓縮,然後雙擊可執行文件(通常是你下載軟體的名稱)。
![Twine downloaded for Linux](/data/attachment/album/201803/27/125923q4zgdggqwmk7mz3e.jpg "Twine downloaded for Linux")
下載 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
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive