如何在Linux上安裝應用程序
學習在你的 Linux 計算機上擺弄那些軟件。
如何在 Linux 上安裝應用程序?因為有許多操作系統(tǒng),這個問題不止有一個答案。應用程序可以可以來自許多來源 —— 幾乎不可能數(shù)的清,并且每個開發(fā)團隊都可以以他們認為最好的方式提供軟件。知道如何安裝你所得到的軟件是成為操作系統(tǒng)高級用戶的一部分。
倉庫
十多年來,Linux 已經(jīng)在使用軟件庫來分發(fā)軟件。在這種情況下,“倉庫”是一個托管可安裝軟件包的公共服務器。Linux 發(fā)行版提供了一條命令,以及該命令的圖形界面,用于從服務器獲取軟件并將其安裝到你的計算機。這是一個非常簡單的概念,它已經(jīng)成為所有主流手機操作系統(tǒng)的模式,最近,該模式也成為了兩大閉源計算機操作系統(tǒng)的“應用商店”。
不是應用程序商店
從軟件倉庫安裝是在 Linux 上安裝應用程序的主要方法,它應該是你尋找想要安裝的任何應用程序的首選地方。
從軟件倉庫安裝,通常需要一個命令,如:
$ sudo dnf install inkscape
實際使用的命令取決于你所使用的 Linux 發(fā)行版。Fedora 使用 dnf
,OpenSUSE 使用 zypper
,Debian 和 Ubuntu 使用 apt
,Slackware 使用 sbopkg
,F(xiàn)reeBSD 使用 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
子命令執(zhí)行實際的下載和自動安裝:
$ sudo dnf install python-qt5
有關(guān)從軟件倉庫安裝的具體信息,請參閱你的 Linux 發(fā)行版的文檔。
圖形工具通常也是如此。搜索你認為你想要的,然后安裝它。
與底層命令一樣,圖形安裝程序的名稱取決于你正在運行的 Linux 發(fā)行版。相關(guān)的應用程序通常使用“軟件(software)”或“包(package)”等關(guān)鍵字進行標記,因此請在你的啟動項或菜單中搜索這些詞匯,然后你將找到所需的內(nèi)容。 由于開源全由用戶來選擇,所以如果你不喜歡你的發(fā)行版提供的圖形用戶界面(GUI),那么你可以選擇安裝替代品。 你知道該如何做到這一點。
額外倉庫
你的 Linux 發(fā)行版為其打包的軟件提供了標準倉庫,通常也有額外的倉庫。例如,EPEL 服務于 Red Hat Enterprise Linux 和 CentOS,RPMFusion 服務于 Fedora,Ubuntu 有各種級別的支持以及個人包存檔(PPA),Packman 為 OpenSUSE 提供額外的軟件以及 SlackBuilds.org 為 Slackware 提供社區(qū)構(gòu)建腳本。
默認情況下,你的 Linux 操作系統(tǒng)設置為只查看其官方倉庫,因此如果你想使用其他軟件集合,則必須自己添加額外庫。你通??梢韵癜惭b軟件包一樣安裝倉庫。實際上,當你安裝例如 GNU Ring 視頻聊天,Vivaldi web 瀏覽器,谷歌瀏覽器等許多軟件時,你的實際安裝是訪問他們的私有倉庫,從中將最新版本的應用程序安裝到你的機器上。
安裝倉庫
你還可以通過編輯文本文件將倉庫手動添加到你的軟件包管理器的配置目錄,或者運行命令來添加添加倉庫。像往常一樣,你使用的確切命令取決于 Linux 發(fā)行版本。例如,這是一個 dnf
命令,它將一個倉庫添加到系統(tǒng)中:
$ sudo dnf config-manager --add-repo=http://example.com/pub/centos/7
不使用倉庫來安裝應用程序
倉庫模型非常流行,因為它提供了用戶(你)和開發(fā)人員之間的鏈接。重要更新發(fā)布之后,系統(tǒng)會提示你接受更新,并且你可以從一個集中位置接受所有更新。
然而,有時候一個軟件包還沒有放到倉庫中時。這些安裝包有幾種形式。
Linux 包
有時候,開發(fā)人員會以通用的 Linux 打包格式分發(fā)軟件,例如 RPM、DEB 或較新但非常流行的 FlatPak 或 Snap 格式。你不是訪問倉庫下載的,你只是得到了這個包。
例如,視頻編輯器 Lightworks 為 APT 用戶提供了一個 .deb
文件,RPM 用戶提供了 .rpm
文件。當你想要更新時,可以到網(wǎng)站下載最新的適合的文件。
這些一次性軟件包可以使用從倉庫進行安裝時所用的一樣的工具進行安裝。如果雙擊下載的軟件包,圖形安裝程序?qū)硬⒅鸩酵瓿砂惭b過程。
或者,你可以從終端進行安裝。這里的區(qū)別在于你從互聯(lián)網(wǎng)下載的獨立包文件不是來自倉庫。這是一個“本地”安裝,這意味著你的軟件安裝包不需要下載來安裝。大多數(shù)軟件包管理器都是透明處理的:
$ sudo dnf install ~/Downloads/lwks-14.0.0-amd64.rpm
在某些情況下,你需要采取額外的步驟才能使應用程序運行,因此請仔細閱讀有關(guān)你正在安裝軟件的文檔。
通用安裝腳本
一些開發(fā)人員以幾種通用格式發(fā)布他們的包。常見的擴展名包括 .run
和 .sh
。NVIDIA 顯卡驅(qū)動程序、像 Nuke 和 Mari 這樣的 Foundry visual FX 軟件包以及來自 GOG 的許多非 DRM 游戲都是用這種安裝程序。(LCTT 譯注:DRM 是數(shù)字版權(quán)管理。)
這種安裝模式依賴于開發(fā)人員提供安裝“向?qū)?rdquo;。一些安裝程序是圖形化的,而另一些只是在終端中運行。
有兩種方式來運行這些類型的安裝程序。
1、 你可以直接從終端運行安裝程序:
$ sh ./game/gog_warsow_x.y.z.sh
2、 另外,你可以通過標記其為可執(zhí)行文件來運行它。要標記為安裝程序可執(zhí)行文件,右鍵單擊它的圖標并選擇其屬性。
給安裝程序可執(zhí)行權(quán)限。
一旦你允許其運行,雙擊圖標就可以安裝了。
GOG 安裝程序
對于其余的安裝程序,只需要按照屏幕上的說明進行操作。
AppImage 便攜式應用程序
AppImage 格式對于 Linux 相對來說比較新,盡管它的概念是基于 NeXT 和 Rox 的。這個想法很簡單:運行應用程序所需的一切都應該放在一個目錄中,然后該目錄被視為一個“應用程序”。要運行該應用程序,只需雙擊該圖標即可運行。不需要也要不應該把應用程序安裝在傳統(tǒng)意義的地方;它從你在硬盤上的任何地方運行都行。
盡管它可以作為獨立應用運行,但 AppImage 通常提供一些系統(tǒng)集成。
AppImage 系統(tǒng)集成
如果你接受此條件,則將一個本地的 .desktop
文件安裝到你的主目錄。.desktop
文件是 Linux 桌面的應用程序菜單和 mimetype 系統(tǒng)使用的一個小配置文件。實質(zhì)上,只是將桌面配置文件放置在主目錄的應用程序列表中“安裝”應用程序,而不實際安裝它。你獲得了安裝某些東西的所有好處,以及能夠在本地運行某些東西的好處,即“便攜式應用程序”。
應用程序目錄
有時,開發(fā)人員只是編譯一個應用程序,然后將結(jié)果發(fā)布到下載中,沒有安裝腳本,也沒有打包。通常,這意味著你下載了一個 TAR 文件,然后 解壓縮,然后雙擊可執(zhí)行文件(通常是你下載軟件的名稱)。
下載 Twine
當使用這種軟件方式交付時,你可以將它放在你下載的地方,當你需要它時,你可以手動啟動它,或者你可以自己進行快速但是麻煩的安裝。這包括兩個簡單的步驟:
- 將目錄保存到一個標準位置,并在需要時手動啟動它。
- 將目錄保存到一個標準位置,并創(chuàng)建一個
.desktop
文件,將其集成到你的系統(tǒng)中。
如果你只是為自己安裝應用程序,那么傳統(tǒng)上會在你的主目錄中放個 bin
(“二進制文件” 的簡稱)目錄作為本地安裝的應用程序和腳本的存儲位置。如果你的系統(tǒng)上有其他用戶需要訪問這些應用程序,傳統(tǒng)上將二進制文件放置在 /opt
中。最后,這取決于你存儲應用程序的位置。
下載通常以帶版本名稱的目錄進行,如 twine_2.13
或者 pcgen-v6.07.04
。由于假設你將在某個時候更新應用程序,因此將版本號刪除或創(chuàng)建目錄的符號鏈接是個不錯的主意。這樣,即使你更新應用程序本身,為應用程序創(chuàng)建的啟動程序也可以保持不變。
要創(chuàng)建一個 .desktop
啟動文件,打開一個文本編輯器并創(chuàng)建一個名為 twine.desktop
的文件。桌面條目規(guī)范 由 FreeDesktop.org 定義。下面是一個簡單的啟動器,用于一個名為 Twine 的游戲開發(fā) IDE,安裝在系統(tǒng)范圍的 /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 自身的參數(shù)啟動。
Exec=java -jar /path/to/foo.jar
有時,一個項目包含一個可以運行的包裝腳本,這樣你就不必找出正確的命令:
Exec=/opt/foo/foo-launcher.sh
在這個 Twine 例子中,沒有與該下載的軟件捆綁的圖標,因此示例 .desktop
文件指定了 KDE 桌面附帶的通用游戲圖標。你可以使用類似的解決方法,但如果你更具藝術(shù)性,可以創(chuàng)建自己的圖標,或者可以在 Internet 上搜索一個好的圖標。只要 Icon
行指向一個有效的 PNG 或 SVG 文件,你的應用程序就會以該圖標為代表。
示例腳本還將應用程序類別主要設置為 Development,因此在 KDE、GNOME 和大多數(shù)其他應用程序菜單中,Twine 出現(xiàn)在開發(fā)類別下。
為了讓這個例子出現(xiàn)在應用程序菜單中,把 twine.desktop
文件放這到兩個地方之一:
- 如果你將應用程序存儲在你自己的家目錄下,那么請將其放在
~/.local/share/applications
。 - 如果你將應用程序存儲在
/opt
目錄或者其他系統(tǒng)范圍的位置,并希望它出現(xiàn)在所有用戶的應用程序菜單中,請將它放在/usr/share/applications
目錄中。
現(xiàn)在,該應用程序已安裝,因為它需要與系統(tǒng)的其他部分集成。
從源代碼編譯
最后,還有真正的通用格式安裝格式:源代碼。從源代碼編譯應用程序是學習如何構(gòu)建應用程序,如何與系統(tǒng)交互以及如何定制應用程序的好方法。盡管如此,它絕不是一個點擊按鈕式過程。它需要一個構(gòu)建環(huán)境,通常需要安裝依賴庫和頭文件,有時還要進行一些調(diào)試。
要了解更多關(guān)于從源代碼編譯的內(nèi)容,請閱讀我這篇文章。
現(xiàn)在你明白了
有些人認為安裝軟件是一個神奇的過程,只有開發(fā)人員理解,或者他們認為它“激活”了應用程序,就好像二進制可執(zhí)行文件在“安裝”之前無效。學習許多不同的安裝方法會告訴你安裝實際上只是“將文件從一個地方復制到系統(tǒng)中適當位置”的簡寫。 沒有什么神秘的。只要你去了解每次安裝,不是期望應該如何發(fā)生,并且尋找開發(fā)者為安裝過程設置了什么,那么通常很容易,即使它與你的習慣不同。
重要的是安裝器要誠實于你。 如果你遇到未經(jīng)你的同意嘗試安裝其他軟件的安裝程序(或者它可能會以混淆或誤導的方式請求同意),或者嘗試在沒有明顯原因的情況下對系統(tǒng)執(zhí)行檢查,則不要繼續(xù)安裝。
好的軟件是靈活的、誠實的、開放的。 現(xiàn)在你知道如何在你的計算機上獲得好軟件了。