有時候你可能想知道安裝的軟件包來自于哪個倉庫。這將幫助你在遇到包沖突問題時進(jìn)行故障排除。因?yàn)?span>第三方倉庫[1]擁有最新版本的軟件包,所以有時候當(dāng)你試圖安裝一些包的時候會出現(xiàn)兼容性的問題。在 Linux 上一切都是可能的,因?yàn)槟憧梢园惭b一個即使在你的發(fā)行版系統(tǒng)上不能使用的包。你也可以安裝一個最新版本的包,即使你的發(fā)行版系統(tǒng)倉庫還沒有這個版本,怎么做到的呢?這就是為什么出現(xiàn)了第三方倉庫。它們允許用戶從庫中安裝所有可用的包。
幾乎所有的發(fā)行版系統(tǒng)都允許第三方軟件庫。一些發(fā)行版還會官方推薦一些不會取代基礎(chǔ)倉庫的第三方倉庫,例如 CentOS 官方推薦安裝 EPEL 庫[2]。
下面是常用的倉庫列表和它們的詳細(xì)信息。
倉庫是什么?
軟件倉庫是存儲特定的應(yīng)用程序的軟件包的集中場所。
所有的 Linux 發(fā)行版都在維護(hù)他們自己的倉庫,并允許用戶在他們的機(jī)器上獲取和安裝包。
每個廠商都提供了各自的包管理工具來管理它們的倉庫,例如搜索、安裝、更新、升級、刪除等等。
除了 RHEL 和 SUSE 以外大部分 Linux 發(fā)行版都是自由軟件。要訪問付費(fèi)的倉庫,你需要購買其訂閱服務(wù)。
為什么我們需要啟用第三方倉庫?
在 Linux 里,并不建議從源代碼安裝包,因?yàn)檫@樣做可能會在升級軟件和系統(tǒng)的時候產(chǎn)生很多問題,這也是為什么我們建議從庫中安裝包而不是從源代碼安裝。
在 RHEL/CentOS 系統(tǒng)上我們?nèi)绾蔚弥惭b的軟件包來自哪個倉庫?
這可以通過很多方法實(shí)現(xiàn)。我們會給你所有可能的選擇,你可以選擇一個對你來說最合適的。
方法-1:使用 yum 命令
RHEL 和 CentOS 系統(tǒng)使用 RPM 包,因此我們能夠使用 Yum 包管理器[8] 來獲得信息。
YUM 即 “Yellodog Updater, Modified” 是適用于基于 RPM 的系統(tǒng)例如 RHEL 和 CentOS 的一個開源命令行前端包管理工具。
yum
是從發(fā)行版?zhèn)}庫和其他第三方庫中獲取、安裝、刪除、查詢和管理 RPM 包的一個主要工具。
# yum info apachetop
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* epel: epel.mirror.constant.com
Installed Packages
Name : apachetop
Arch : x86_64
Version : 0.15.6
Release : 1.el7
Size : 65 k
Repo : installed
From repo : epel
Summary : A top-like display of Apache logs
URL : https://github.com/tessus/apachetop
License : BSD
Description : 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 倉庫。
方法-2:使用 yumdb 命令
yumdb info
提供了類似于 yum info
的信息但是它又提供了包校驗(yàn)和數(shù)據(jù)、類型、用戶信息(誰安裝的軟件包)。從 yum 3.2.26 開始,yum 已經(jīng)開始在 rpmdatabase 之外存儲額外的信息(user 表示軟件是用戶安裝的,dep 表示它是作為依賴項(xiàng)引入的)。
# yumdb info lighttpd
Loaded plugins: fastestmirror
lighttpd-1.4.50-1.el7.x86_64
checksum_data = a24d18102ed40148cfcc965310a516050ed437d728eeeefb23709486783a4d37
checksum_type = sha256
command_line = --enablerepo=epel install lighttpd apachetop aria2 atop axel
from_repo = epel
from_repo_revision = 1540756729
from_repo_timestamp = 1540757483
installed_by = 0
origin_url = https://epel.mirror.constant.com/7/x86_64/Packages/l/lighttpd-1.4.50-1.el7.x86_64.rpm
reason = user
releasever = 7
var_contentdir = centos
var_infra = stock
var_uuid = ce328b07-9c0a-4765-b2ad-59d96a257dc8
lighttpd
包來自 EPEL 倉庫。
方法-3:使用 rpm 命令
RPM 命令[9] 即 “Red Hat Package Manager” 是一個適用于基于 Red Hat 的系統(tǒng)(例如 RHEL、CentOS、Fedora、openSUSE & Mageia)的強(qiáng)大的命令行包管理工具。
這個工具允許你在你的 Linux 系統(tǒng)/服務(wù)器上安裝、更新、移除、查詢和驗(yàn)證軟件。RPM 文件具有 .rpm 后綴名。RPM 包是用必需的庫和依賴關(guān)系構(gòu)建的,不會與系統(tǒng)上安裝的其他包沖突。
# rpm -qi apachetop
Name : apachetop
Version : 0.15.6
Release : 1.el7
Architecture: x86_64
Install Date: Mon 29 Oct 2018 06:47:49 AM EDT
Group : Applications/Internet
Size : 67020
License : BSD
Signature : RSA/SHA256, Mon 22 Jun 2015 09:30:26 AM EDT, Key ID 6a2faea2352c64e5
Source RPM : apachetop-0.15.6-1.el7.src.rpm
Build Date : Sat 20 Jun 2015 09:02:37 PM EDT
Build Host : buildvm-22.phx2.fedoraproject.org
Relocations : (not relocatable)
Packager : Fedora Project
Vendor : Fedora Project
URL : https://github.com/tessus/apachetop
Summary : A top-like display of Apache logs
Description :
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 倉庫。
方法-4:使用 repoquery 命令
repoquery
是一個從 YUM 庫查詢信息的程序,類似于 rpm 查詢。
# repoquery -i httpd
Name : httpd
Version : 2.4.6
Release : 80.el7.centos.1
Architecture: x86_64
Size : 9817285
Packager : CentOS BuildSystem
Group : System Environment/Daemons
URL : http://httpd.apache.org/
Repository : updates
Summary : Apache HTTP Server
Source : httpd-2.4.6-80.el7.centos.1.src.rpm
Description :
The Apache HTTP Server is a powerful, efficient, and extensible
web server.
httpd
包來自 CentOS updates 倉庫。
在 Fedora 系統(tǒng)上我們?nèi)绾蔚弥惭b的包來自哪個倉庫?
DNF 是 “Dandified yum” 的縮寫。DNF 是使用 hawkey/libsolv 庫作為后端的下一代 yum 包管理器(yum 的分支)。從 Fedora 18 開始 Ale? Kozumplík 開始開發(fā) DNF,并最終在 Fedora 22 上得以應(yīng)用/啟用。
dnf 命令[10] 用于在 Fedora 22 以及之后的系統(tǒng)上安裝、更新、搜索和刪除包。它會自動解決依賴并使安裝包的過程變得順暢,不會出現(xiàn)任何問題。
$ dnf info tilix
Last metadata expiration check: 27 days, 10:00:23 ago on Wed 04 Oct 2017 06:43:27 AM IST.
Installed Packages
Name : tilix
Version : 1.6.4
Release : 1.fc26
Arch : x86_64
Size : 3.6 M
Source : tilix-1.6.4-1.fc26.src.rpm
Repo : @System
From repo : updates
Summary : Tiling terminal emulator
URL : https://github.com/gnunn1/tilix
License : MPLv2.0 and GPLv3+ and CC-BY-SA
Description : 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 倉庫。
在 openSUSE 系統(tǒng)上我們?nèi)绾蔚弥惭b的包來自哪個倉庫?
Zypper 是一個使用 libzypp 的命令行包管理器。Zypper 命令[11] 提供了存儲庫訪問、依賴處理、包安裝等功能。
$ zypper info nano
Loading repository data...
Reading installed packages...
Information for package nano:
-----------------------------
Repository : Main Repository (OSS)
Name : nano
Version : 2.4.2-5.3
Arch : x86_64
Vendor : openSUSE
Installed Size : 1017.8 KiB
Installed : No
Status : not installed
Source package : nano-2.4.2-5.3.src
Summary : Pico editor clone with enhancements
Description :
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)。
在 ArchLinux 系統(tǒng)上我們?nèi)绾蔚弥惭b的包來自哪個倉庫?
Pacman 命令[12] 即包管理器工具(package manager utility ),是一個簡單的用來安裝、構(gòu)建、刪除和管理 Arch Linux 軟件包的命令行工具。Pacman 使用 libalpm 作為后端來執(zhí)行所有的操作。
# pacman -Ss chromium
extra/chromium 48.0.2564.116-1
The open-source project behind Google Chrome, an attempt at creating a safer, faster, and more stable browser
extra/qt5-webengine 5.5.1-9 (qt qt5)
Provides support for web applications using the Chromium browser project
community/chromium-bsu 0.9.15.1-2
A fast paced top scrolling shooter
community/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 倉庫。
或者,我們可以使用以下選項(xiàng)獲得關(guān)于包的詳細(xì)信息。
# pacman -Si chromium
Repository : extra
Name : chromium
Version : 48.0.2564.116-1
Description : The open-source project behind Google Chrome, an attempt at creating a safer, faster, and more stable browser
Architecture : x86_64
URL : http://www.chromium.org/
Licenses : BSD
Groups : None
Provides : None
Depends 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-theme
Optional Deps : kdebase-kdialog: needed for file dialogs in KDE
gnome-keyring: for storing passwords in GNOME keyring
kwallet: for storing passwords in KWallet
Conflicts With : None
Replaces : None
Download Size : 44.42 MiB
Installed Size : 172.44 MiB
Packager : Evangelos Foutras
Build Date : Fri 19 Feb 2016 04:17:12 AM IST
Validated By : MD5 Sum SHA-256 Sum Signature
chromium
包來自 ArchLinux extra 倉庫。
在基于 Debian 的系統(tǒng)上我們?nèi)绾蔚弥惭b的包來自哪個倉庫?
在基于 Debian 的系統(tǒng)例如 Ubuntu、LinuxMint 上可以使用兩種方法實(shí)現(xiàn)。
方法-1:使用 apt-cache 命令
apt-cache 命令[13] 可以顯示存儲在 APT 內(nèi)部數(shù)據(jù)庫的很多信息。這些信息是一種緩存,因?yàn)樗鼈兪菑牧性?nbsp;source.list
文件里的不同的源中獲得的。這個過程發(fā)生在 apt 更新操作期間。
$ apt-cache policy python3
python3:
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 amd64 Packages
*** 3.6.3-0ubuntu2 500
500 http://in.archive.ubuntu.com/ubuntu artful/main amd64 Packages
100 /var/lib/dpkg/status
python3
包來自 Ubuntu updates 倉庫。
方法-2:使用 apt 命令
APT 命令[14] 即 “Advanced Packaging Tool”,是 apt-get
命令的替代品,就像 DNF 是如何取代 YUM 一樣。它是具有豐富功能的命令行工具并將所有的功能例如 apt-cache
、apt-search
、dpkg
、apt-cdrom
、apt-config
、apt-ket
等包含在一個命令(APT)中,并且還有幾個獨(dú)特的功能。例如我們可以通過 APT 輕松安裝 .dpkg 包,但我們不能使用 apt-get
命令安裝,更多類似的功能都被包含進(jìn)了 APT 命令。apt-get
因缺失了很多未被解決的特性而被 apt
取代。
$ apt -a show notepadqq
Package: notepadqq
Version: 1.3.2-1~artful1
Priority: optional
Section: editors
Maintainer: Daniele Di Sarli
Installed-Size: 1,352 kB
Depends: notepadqq-common (= 1.3.2-1~artful1), coreutils (>= 8.20), libqt5svg5 (>= 5.2.1), libc6 (>= 2.14), 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 kB
APT-Sources: http://ppa.launchpad.net/notepadqq-team/notepadqq/ubuntu artful/main amd64 Packages
Description: Notepad++-like editor for Linux
Text editor with support for multiple programming
languages, multiple encodings and plugin support.
Package: notepadqq
Version: 1.2.0-1~artful1
Status: install ok installed
Priority: optional
Section: editors
Maintainer: Daniele Di Sarli
Installed-Size: 1,352 kB
Depends: notepadqq-common (= 1.2.0-1~artful1), coreutils (>= 8.20), libqt5svg5 (>= 5.2.1), libc6 (>= 2.14), 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.org
Download-Size: unknown
APT-Manual-Installed: yes
APT-Sources: /var/lib/dpkg/status
Description: Notepad++-like editor for Linux
Text editor with support for multiple programming
languages, multiple encodings and plugin support.
notepadqq
包來自 Launchpad PPA。
via: https://www.2daygeek.com/how-do-we-find-out-the-installed-packages-came-from-which-repository/
作者:Prakash Subramanian[16] 選題:lujun9972 譯者:zianglei 校對:wxy
聯(lián)系客服