有時候你可能想知道安裝的軟體包來自於哪個倉庫。這將幫助你在遇到包衝突問題時進行故障排除。因為第三方倉庫擁有最新版本的軟體包,所以有時候當你試圖安裝一些包的時候會出現相容性的問題。在 Linux 上一切都是可能的,因為你可以安裝一個即使在你的發行版系統上不能使用的包。你也可以安裝一個最新版本的包,即使你的發行版系統倉庫還沒有這個版本,怎麼做到的呢?這就是為什麼出現了第三方倉庫。它們允許使用者從庫中安裝所有可用的包。
幾乎所有的發行版系統都允許第三方軟體庫。一些發行版還會官方推薦一些不會取代基礎倉庫的第三方倉庫,例如 CentOS 官方推薦安裝 EPEL 庫。
下面是常用的倉庫列表和它們的詳細資訊。
軟體倉庫是儲存特定的應用程式的軟體包的集中場所。
所有的 Linux 發行版都在維護他們自己的倉庫,並允許使用者在他們的機器上獲取和安裝包。
每個廠商都提供了各自的包管理工具來管理它們的倉庫,例如搜尋、安裝、更新、升級、刪除等等。
除了 RHEL 和 SUSE 以外大部分 Linux 發行版都是自由軟體。要存取付費的倉庫,你需要購買其訂閱服務。
在 Linux 裡,並不建議從原始碼安裝包,因為這樣做可能會在升級軟體和系統的時候產生很多問題,這也是為什麼我們建議從庫中安裝包而不是從原始碼安裝。
這可以通過很多方法實現。我們會給你所有可能的選擇,你可以選擇一個對你來說最合適的。
RHEL 和 CentOS 系統使用 RPM 包,因此我們能夠使用 Yum 包管理器 來獲得資訊。
YUM 即 “Yellodog Updater, Modified” 是適用於基於 RPM 的系統例如 RHEL 和 CentOS 的一個開源命令列前端包管理工具。
yum
是從發行版倉庫和其他第三方庫中獲取、安裝、刪除、查詢和管理 RPM 包的一個主要工具。
# yum info apachetopLoaded plugins: fastestmirrorLoading mirror speeds from cached hostfile * epel: epel.mirror.constant.comInstalled PackagesName : apachetopArch : x86_6https://linux.cn/4Version : 0.15.6Release : 1.el7Size : 65 kRepo : installedFrom repo : epelSummary : A top-like display of Apache logsURL : https://github.com/tessus/apachetopLicense : BSDDescription : ApacheTop watches a logfile generated by Apache (in standard common or : combined logformat, although it doesn't (yet) make use of any of the extra : fields in combined) and generates human-parsable output in realtime.
apachetop
包來自 EPEL 倉庫。
yumdb info
提供了類似於 yum info
的資訊但是它又提供了包校驗和資料、型別、使用者資訊(誰安裝的軟體包)。從 yum 3.2.26 開始,yum 已經開始在 rpmdatabase 之外儲存額外的資訊(user 表示軟體是使用者安裝的,dep 表示它是作為依賴項引入的)。
# yumdb info lighttpdLoaded plugins: fastestmirrorlighttpd-1.https://linux.cn/4.50-1.el7.x86_6https://linux.cn/4 checksum_data = a2https://linux.cn/4d18102edhttps://linux.cn/401https://linux.cn/48cfcc965310a516050edhttps://linux.cn/437d728eeeefb23709https://linux.cn/486783ahttps://linux.cn/4d37 checksum_type = sha256 command_line = --enablerepo=epel install lighttpd apachetop aria2 atop axel from_repo = epel from_repo_revision = 15https://linux.cn/40756729 from_repo_timestamp = 15https://linux.cn/40757https://linux.cn/483 installed_by = 0 origin_url = https://epel.mirror.constant.com/7/x86_6https://linux.cn/4/Packages/l/lighttpd-1.https://linux.cn/4.50-1.el7.x86_6https://linux.cn/4.rpm reason = user releasever = 7 var_contentdir = centos var_infra = stock var_uuid = ce328b07-9c0a-https://linux.cn/4765-b2ad-59d96a257dc8
lighttpd
包來自 EPEL 倉庫。
RPM 命令 即 “Red Hat Package Manager” 是一個適用於基於 Red Hat 的系統(例如 RHEL、CentOS、Fedora、openSUSE & Mageia)的強大的命令列包管理工具。
這個工具允許你在你的 Linux 系統/伺服器上安裝、更新、移除、查詢和驗證軟體。RPM 檔案具有 .rpm 字尾名。RPM 包是用必需的庫和依賴關係構建的,不會與系統上安裝的其他包衝突。
# rpm -qi apachetopName : apachetopVersion : 0.15.6Release : 1.el7Architecture: x86_6https://linux.cn/4Install Date: Mon 29 Oct 2018 06:https://linux.cn/47:https://linux.cn/49 AM EDTGroup : Applications/InternetSize : 67020License : BSDSignature : RSA/SHA256, Mon 22 Jun 2015 09:30:26 AM EDT, Key ID 6a2faea2352c6https://linux.cn/4e5Source RPM : apachetop-0.15.6-1.el7.src.rpmBuild Date : Sat 20 Jun 2015 09:02:37 PM EDTBuild Host : buildvm-22.phx2.fedoraproject.orgRelocations : (not relocatable)Packager : Fedora ProjectVendor : Fedora ProjectURL : https://github.com/tessus/apachetopSummary : A top-like display of Apache logsDescription :ApacheTop watches a logfile generated by Apache (in standard common orcombined logformat, although it doesn't (yet) make use of any of the extrafields in combined) and generates human-parsable output in realtime.
apachetop
包來自 EPEL 倉庫。
repoquery
是一個從 YUM 庫查詢資訊的程式,類似於 rpm 查詢。
# repoquery -i httpdName : httpdVersion : 2.https://linux.cn/4.6Release : 80.el7.centos.1Architecture: x86_6https://linux.cn/4Size : 9817285Packager : CentOS BuildSystem Group : System Environment/DaemonsURL : http://httpd.apache.org/Repository : updatesSummary : Apache HTTP ServerSource : httpd-2.https://linux.cn/4.6-80.el7.centos.1.src.rpmDescription :The Apache HTTP Server is a powerful, efficient, and extensibleweb server.
httpd
包來自 CentOS updates 倉庫。
DNF 是 “Dandified yum” 的縮寫。DNF 是使用 hawkey/libsolv 庫作為後端的下一代 yum 包管理器(yum 的分支)。從 Fedora 18 開始 Aleš Kozumplík 開始開發 DNF,並最終在 Fedora 22 上得以應用/啟用。
dnf 命令 用於在 Fedora 22 以及之後的系統上安裝、更新、搜尋和刪除包。它會自動解決依賴並使安裝包的過程變得順暢,不會出現任何問題。
$ dnf info tilixLast metadata expiration check: 27 days, 10:00:23 ago on Wed 0https://linux.cn/4 Oct 2017 06:https://linux.cn/43:27 AM IST.Installed PackagesName : tilixVersion : 1.6.https://linux.cn/4Release : 1.fc26Arch : x86_6https://linux.cn/4Size : 3.6 MSource : tilix-1.6.https://linux.cn/4-1.fc26.src.rpmRepo : @SystemFrom repo : updatesSummary : Tiling terminal emulatorURL : https://github.com/gnunn1/tilixLicense : MPLv2.0 and GPLv3+ and CC-BY-SADescription : Tilix is a tiling terminal emulator with the following features: : : - Layout terminals in any fashion by splitting them horizontally or vertically : - Terminals can be re-arranged using drag and drop both within and between : windows : - Terminals can be detached into a new window via drag and drop : - Input can be synchronized between terminals so commands typed in one : terminal are replicated to the others : - The grouping of terminals can be saved and loaded from disk : - Terminals support custom titles : - Color schemes are stored in files and custom color schemes can be created by : simply creating a new file : - Transparent background : - Supports notifications when processes are completed out of view : : The application was written using GTK 3 and an effort was made to conform to : GNOME Human Interface Guidelines (HIG).
tilix
包來自 Fedora updates 倉庫。
Zypper 是一個使用 libzypp 的命令列包管理器。Zypper 命令 提供了儲存庫存取、依賴處理、包安裝等功能。
$ zypper info nanoLoading repository data...Reading installed packages...Information for package nano:-----------------------------Repository : Main Repository (OSS) Name : nano Version : 2.https://linux.cn/4.2-5.3 Arch : x86_6https://linux.cn/4 Vendor : openSUSE Installed Size : 1017.8 KiB Installed : No Status : not installed Source package : nano-2.https://linux.cn/4.2-5.3.src Summary : Pico editor clone with enhancementsDescription : GNU nano is a small and friendly text editor. It aims to emulate the Pico text editor while also offering a few enhancements.
nano
包來自於 openSUSE Main 倉庫(OSS)。
Pacman 命令 即包管理器工具(package manager utility ),是一個簡單的用來安裝、構建、刪除和管理 Arch Linux 軟體包的命令列工具。Pacman 使用 libalpm 作為後端來執行所有的操作。
# pacman -Ss chromiumextra/chromium https://linux.cn/48.0.256https://linux.cn/4.116-1 The open-source project behind Google Chrome, an attempt at creating a safer, faster, and more stable browserextra/qt5-webengine 5.5.1-9 (qt qt5) Provides support for web applications using the Chromium browser projectcommunity/chromium-bsu 0.9.15.1-2 A fast paced top scrolling shootercommunity/chromium-chromevox latest-1 Causes the Chromium web browser to automatically install and update the ChromeVox screen reader extention. Note: This package does not contain the extension code.community/fcitx-mozc 2.17.2313.102-1 Fcitx Module of A Japanese Input Method for Chromium OS, Windows, Mac and Linux (the Open Source Edition of Google Japanese Input)
chromium
包來自 ArchLinux extra 倉庫。
或者,我們可以使用以下選項獲得關於包的詳細資訊。
# pacman -Si chromiumRepository : extraName : chromiumVersion : https://linux.cn/48.0.256https://linux.cn/4.116-1Description : The open-source project behind Google Chrome, an attempt at creating a safer, faster, and more stable browserArchitecture : x86_6https://linux.cn/4URL : http://www.chromium.org/Licenses : BSDGroups : NoneProvides : NoneDepends On : gtk2 nss alsa-lib xdg-utils bzip2 libevent libxss icu libexif libgcrypt ttf-font systemd dbus flac snappy speech-dispatcher pciutils libpulse harfbuzz libsecret libvpx perl perl-file-basedir desktop-file-utils hicolor-icon-themeOptional Deps : kdebase-kdialog: needed for file dialogs in KDE gnome-keyring: for storing passwords in GNOME keyring kwallet: for storing passwords in KWalletConflicts With : NoneReplaces : NoneDownload Size : https://linux.cn/4https://linux.cn/4.https://linux.cn/42 MiBInstalled Size : 172.https://linux.cn/4https://linux.cn/4 MiBPackager : Evangelos Foutras Build Date : Fri 19 Feb 2016 0https://linux.cn/4:17:12 AM ISTValidated By : MD5 Sum SHA-256 Sum Signature
chromium
包來自 ArchLinux extra 倉庫。
在基於 Debian 的系統例如 Ubuntu、LinuxMint 上可以使用兩種方法實現。
apt-cache 命令 可以顯示儲存在 APT 內部資料庫的很多資訊。這些資訊是一種快取,因為它們是從列在 source.list
檔案裡的不同的源中獲得的。這個過程發生在 apt 更新操作期間。
$ apt-cache policy python3python3: Installed: 3.6.3-0ubuntu2 Candidate: 3.6.3-0ubuntu3 Version table: 3.6.3-0ubuntu3 500 500 http://in.archive.ubuntu.com/ubuntu artful-updates/main amd6https://linux.cn/4 Packages *** 3.6.3-0ubuntu2 500 500 http://in.archive.ubuntu.com/ubuntu artful/main amd6https://linux.cn/4 Packages 100 /var/lib/dpkg/status
python3
包來自 Ubuntu updates 倉庫。
APT 命令 即 “Advanced Packaging Tool”,是 apt-get
命令的替代品,就像 DNF 是如何取代 YUM 一樣。它是具有豐富功能的命令列工具並將所有的功能例如 apt-cache
、apt-search
、dpkg
、apt-cdrom
、apt-config
、apt-ket
等包含在一個命令(APT)中,並且還有幾個獨特的功能。例如我們可以通過 APT 輕鬆安裝 .dpkg 包,但我們不能使用 apt-get
命令安裝,更多類似的功能都被包含進了 APT 命令。apt-get
因缺失了很多未被解決的特性而被 apt
取代。
$ apt -a show notepadqqPackage: notepadqqVersion: 1.3.2-1~artful1Priority: optionalSection: editorsMaintainer: Daniele Di Sarli Installed-Size: 1,352 kBDepends: notepadqq-common (= 1.3.2-1~artful1), coreutils (>= 8.20), libqt5svg5 (>= 5.2.1), libc6 (>= 2.1https://linux.cn/4), libgcc1 (>= 1:3.0), libqt5core5a (>= 5.9.0~beta), libqt5gui5 (>= 5.7.0), libqt5network5 (>= 5.2.1), libqt5printsupport5 (>= 5.2.1), libqt5webkit5 (>= 5.6.0~rc), libqt5widgets5 (>= 5.2.1), libstdc++6 (>= 5.2)Download-Size: 356 kBAPT-Sources: http://ppa.launchpad.net/notepadqq-team/notepadqq/ubuntu artful/main amd6https://linux.cn/4 PackagesDescription: Notepad++-like editor for Linux Text editor with support for multiple programming languages, multiple encodings and plugin support.Package: notepadqqVersion: 1.2.0-1~artful1Status: install ok installedPriority: optionalSection: editorsMaintainer: Daniele Di Sarli Installed-Size: 1,352 kBDepends: notepadqq-common (= 1.2.0-1~artful1), coreutils (>= 8.20), libqt5svg5 (>= 5.2.1), libc6 (>= 2.1https://linux.cn/4), libgcc1 (>= 1:3.0), libqt5core5a (>= 5.9.0~beta), libqt5gui5 (>= 5.7.0), libqt5network5 (>= 5.2.1), libqt5printsupport5 (>= 5.2.1), libqt5webkit5 (>= 5.6.0~rc), libqt5widgets5 (>= 5.2.1), libstdc++6 (>= 5.2)Homepage: http://notepadqq.altervista.orgDownload-Size: unknownAPT-Manual-Installed: yesAPT-Sources: /var/lib/dpkg/statusDescription: Notepad++-like editor for Linux Text editor with support for multiple programming languages, multiple encodings and plugin support.
notepadqq
包來自 Launchpad PPA。