如何在 CentOS 中添加、启用和禁用一个仓库

对于基于 RPM 的系统,有许多第三方仓库可用,但所建议使用的仓库很少,因为这些不会替换大量的基础包。

如何在 CentOS 中添加、启用和禁用一个仓库

在基于 RPM 的系统上,例如 RHEL、CentOS 等,我们中的许多人使用 yum 包管理器来管理软件的安装、删除、更新、搜索等。

Linux 发行版的大部分软件都来自发行版官方仓库。官方仓库包含大量免费和开源的应用和软件。它很容易安装和使用。

由于一些限制和专有问题,基于 RPM 的发行版在其官方仓库中没有提供某些包。另外,出于稳定性考虑,它不会提供最新版本的核心包。

为了克服这种情况,我们需要安装或启用需要的第三方仓库。对于基于 RPM 的系统,有许多第三方仓库可用,但所建议使用的仓库很少,因为这些不会替换大量的基础包。

建议阅读:

这可以在基于 RPM 的系统上完成,比如 RHEL, CentOS, OEL, Fedora 等。

  • Fedora 系统使用 dnf config-manager [options] [section …]
  • 其它基于 RPM 的系统使用 yum-config-manager [options] [section …]

如何列出启用的仓库

只需运行以下命令即可检查系统上启用的仓库列表。

对于 CentOS/RHEL/OLE 系统:

“`

yum repolist

Loaded plugins: fastestmirror, security
Loading mirror speeds from cached hostfile
repo id repo name status
base CentOS-6 – Base 6,706
extras CentOS-6 – Extras 53
updates CentOS-6 – Updates 1,255
repolist: 8,014
“`

对于 Fedora 系统:

“`

dnf repolist

“`

如何在系统中添加一个新仓库

每个仓库通常都提供自己的 .repo 文件。要将此类仓库添加到系统中,使用 root 用户运行以下命令。在我们的例子中将添加 EPEL 仓库 和 IUS 社区仓库,见下文。

但是没有 .repo 文件可用于这些仓库。因此,我们使用以下方法进行安装。

对于 EPEL 仓库,因为它可以从 CentOS 额外仓库获得,所以运行以下命令来安装它。

“`

yum install epel-release -y

“`

对于 IUS 社区仓库,运行以下 bash 脚本来安装。

“`

curl ‘https://setup.ius.io/’ -o setup-ius.sh

sh setup-ius.sh

“`

如果你有 .repo 文件,在 RHEL/CentOS/OEL 中,只需运行以下命令来添加一个仓库。

“`

yum-config-manager –add-repo http://www.example.com/example.repo

Loaded plugins: product-id, refresh-packagekit, subscription-manager
adding repo from: http://www.example.com/example.repo
grabbing file http://www.example.com/example.repo to /etc/yum.repos.d/example.repo
example.repo | 413 B 00:00
repo saved to /etc/yum.repos.d/example.repo
“`

对于 Fedora 系统,运行以下命令来添加一个仓库:

“`

dnf config-manager –add-repo http://www.example.com/example.repo

adding repo from: http://www.example.com/example.repo
“`

如果在添加这些仓库之后运行 yum repolist 命令,你就可以看到新添加的仓库了。Yes,我看到了。

注意:每当运行 yum repolist 命令时,该命令会自动从相应的仓库获取更新,并将缓存保存在本地系统中。

“`

yum repolist

Loaded plugins: fastestmirror, security
Loading mirror speeds from cached hostfile
epel/metalink | 6.1 kB 00:00
* epel: epel.mirror.constant.com
* ius: ius.mirror.constant.com
ius | 2.3 kB 00:00
repo id repo name status
base CentOS-6 – Base 6,706
epel Extra Packages for Enterprise Linux 6 – x8664 12,505
extras CentOS-6 – Extras 53
ius IUS Community Packages for Enterprise Linux 6 – x86
64 390
updates CentOS-6 – Updates 1,255
repolist: 20,909
“`

每个仓库都有多个渠道,比如测试(Testing)、开发(Dev)和存档(Archive)等。通过导航到仓库文件位置,你可以更好地理解这一点。

“`

ls -lh /etc/yum.repos.d

total 64K
-rw-r–r– 1 root root 2.0K Apr 12 02:44 CentOS-Base.repo
-rw-r–r– 1 root root 647 Apr 12 02:44 CentOS-Debuginfo.repo
-rw-r–r– 1 root root 289 Apr 12 02:44 CentOS-fasttrack.repo
-rw-r–r– 1 root root 630 Apr 12 02:44 CentOS-Media.repo
-rw-r–r– 1 root root 916 May 18 11:07 CentOS-SCLo-scl.repo
-rw-r–r– 1 root root 892 May 18 10:36 CentOS-SCLo-scl-rh.repo
-rw-r–r– 1 root root 6.2K Apr 12 02:44 CentOS-Vault.repo
-rw-r–r– 1 root root 7.9K Apr 12 02:44 CentOS-Vault.repo.rpmnew
-rw-r–r– 1 root root 957 May 18 10:41 epel.repo
-rw-r–r– 1 root root 1.1K Nov 4 2012 epel-testing.repo
-rw-r–r– 1 root root 1.2K Feb 23 2017 ius-archive.repo
-rw-r–r– 1 root root 1.2K Feb 23 2017 ius-dev.repo
-rw-r–r– 1 root root 1.1K May 18 10:41 ius.repo
-rw-r–r– 1 root root 1.2K Feb 23 2017 ius-testing.repo
“`

如何在系统中启用一个仓库

当你在默认情况下添加一个新仓库时,它将启用它们的稳定仓库,这就是为什么我们在运行 yum repolist 命令时获取了仓库信息。在某些情况下,如果你希望启用它们的测试、开发或存档仓库,使用以下命令。另外,我们还可以使用此命令启用任何禁用的仓库。

为了验证这一点,我们将启用 epel-testing.repo,运行下面的命令:

“`

yum-config-manager –enable epel-testing

Loaded plugins: fastestmirror
==================================================================================== repo: epel-testing =====================================================================================
[epel-testing]
bandwidth = 0
basepersistdir = /var/lib/yum/repos/x8664/6
baseurl =
cache = 0
cachedir = /var/cache/yum/x8664/6/epel-testing
cost = 1000
enabled = 1
enablegroups = True
exclude =
failovermethod = priority
ftp
disableepsv = False
gpgcadir = /var/lib/yum/repos/x86
64/6/epel-testing/gpgcadir
gpgcakey =
gpgcheck = True
gpgdir = /var/lib/yum/repos/x8664/6/epel-testing/gpgdir
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
hdrdir = /var/cache/yum/x86
64/6/epel-testing/headers
httpcaching = all
includepkgs =
keepalive = True
mdpolicy = group:primary
mediaid =
metadata
expire = 21600
metalink =
mirrorlist = https://mirrors.fedoraproject.org/metalink?repo=testing-epel6&arch=x8664
mirrorlist
expire = 86400
name = Extra Packages for Enterprise Linux 6 – Testing – x8664
old
basecachedir =
password =
persistdir = /var/lib/yum/repos/x8664/6/epel-testing
pkgdir = /var/cache/yum/x86
64/6/epel-testing/packages
proxy = False
proxydict =
proxy
password =
proxyusername =
repo
gpgcheck = False
retries = 10
skipifunavailable = False
sslcheckcert_permissions = True
sslcacert =
sslclientcert =
sslclientkey =
sslverify = True
throttle = 0
timeout = 30.0
username =
“`

运行 yum repolist 命令来检查是否启用了 “epel-testing”。它被启用了,我可以从列表中看到它。

“`

yum repolist

Loaded plugins: fastestmirror, security
Determining fastest mirrors
epel/metalink | 18 kB 00:00
epel-testing/metalink | 17 kB 00:00
* epel: mirror.us.leaseweb.net
* epel-testing: mirror.us.leaseweb.net
* ius: mirror.team-cymru.com
base | 3.7 kB 00:00
centos-sclo-sclo | 2.9 kB 00:00
epel | 4.7 kB 00:00
epel/primarydb | 6.0 MB 00:00
epel-testing | 4.7 kB 00:00
epel-testing/primary
db | 368 kB 00:00
extras | 3.4 kB 00:00
ius | 2.3 kB 00:00
ius/primarydb | 216 kB 00:00
updates | 3.4 kB 00:00
updates/primary
db | 8.1 MB 00:00 …
repo id repo name status
base CentOS-6 – Base 6,706
centos-sclo-sclo CentOS-6 – SCLo sclo 495
epel Extra Packages for Enterprise Linux 6 – x8664 12,509
epel-testing Extra Packages for Enterprise Linux 6 – Testing – x86
64 809
extras CentOS-6 – Extras 53
ius IUS Community Packages for Enterprise Linux 6 – x86_64 390
updates CentOS-6 – Updates 1,288
repolist: 22,250
“`

如果你想同时启用多个仓库,使用以下格式。这个命令将启用 epel、epel-testing 和 ius 仓库:

“`

yum-config-manager –enable epel epel-testing ius

“`

对于 Fedora 系统,运行下面的命令来启用仓库:

“`

dnf config-manager –set-enabled epel-testing

“`

如何在系统中禁用一个仓库

无论何时你在默认情况下添加一个新的仓库,它都会启用它们的稳定仓库,这就是为什么我们在运行 yum repolist 命令时获取了仓库信息。如果你不想使用仓库,那么可以通过下面的命令来禁用它。

为了验证这点,我们将要禁用 epel-testing.repoius.repo,运行以下命令:

“`

yum-config-manager –disable epel-testing ius

Loaded plugins: fastestmirror
==================================================================================== repo: epel-testing =====================================================================================
[epel-testing]
bandwidth = 0
basepersistdir = /var/lib/yum/repos/x8664/6
baseurl =
cache = 0
cachedir = /var/cache/yum/x8664/6/epel-testing
cost = 1000
enabled = 0
enablegroups = True
exclude =
failovermethod = priority
ftp
disableepsv = False
gpgcadir = /var/lib/yum/repos/x86
64/6/epel-testing/gpgcadir
gpgcakey =
gpgcheck = True
gpgdir = /var/lib/yum/repos/x8664/6/epel-testing/gpgdir
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
hdrdir = /var/cache/yum/x86
64/6/epel-testing/headers
httpcaching = all
includepkgs =
keepalive = True
mdpolicy = group:primary
mediaid =
metadata
expire = 21600
metalink =
mirrorlist = https://mirrors.fedoraproject.org/metalink?repo=testing-epel6&arch=x8664
mirrorlist
expire = 86400
name = Extra Packages for Enterprise Linux 6 – Testing – x8664
old
basecachedir =
password =
persistdir = /var/lib/yum/repos/x8664/6/epel-testing
pkgdir = /var/cache/yum/x86
64/6/epel-testing/packages
proxy = False
proxydict =
proxy
password =
proxyusername =
repo
gpgcheck = False
retries = 10
skipifunavailable = False
sslcheckcert_permissions = True
sslcacert =
sslclientcert =
sslclientkey =
sslverify = True
throttle = 0
timeout = 30.0
username =

========================================================================================= repo: ius =========================================================================================
[ius]
bandwidth = 0
basepersistdir = /var/lib/yum/repos/x8664/6
baseurl =
cache = 0
cachedir = /var/cache/yum/x8664/6/ius
cost = 1000
enabled = 0
enablegroups = True
exclude =
failovermethod = priority
ftp
disableepsv = False
gpgcadir = /var/lib/yum/repos/x86
64/6/ius/gpgcadir
gpgcakey =
gpgcheck = True
gpgdir = /var/lib/yum/repos/x8664/6/ius/gpgdir
gpgkey = file:///etc/pki/rpm-gpg/IUS-COMMUNITY-GPG-KEY
hdrdir = /var/cache/yum/x86
64/6/ius/headers
httpcaching = all
includepkgs =
keepalive = True
mdpolicy = group:primary
mediaid =
metadata
expire = 21600
metalink =
mirrorlist = https://mirrors.iuscommunity.org/mirrorlist?repo=ius-centos6&arch=x8664&protocol=http
mirrorlist
expire = 86400
name = IUS Community Packages for Enterprise Linux 6 – x8664
old
basecachedir =
password =
persistdir = /var/lib/yum/repos/x8664/6/ius
pkgdir = /var/cache/yum/x86
64/6/ius/packages
proxy = False
proxydict =
proxy
password =
proxyusername =
repo
gpgcheck = False
retries = 10
skipifunavailable = False
sslcheckcert_permissions = True
sslcacert =
sslclientcert =
sslclientkey =
sslverify = True
throttle = 0
timeout = 30.0
username =
“`

运行 yum repolist 命令检查 “epel-testing” 和 “ius” 仓库是否被禁用。它被禁用了,我不能看到那些仓库,除了 “epel”。

“`

yum repolist

Loaded plugins: fastestmirror, security
Loading mirror speeds from cached hostfile
* epel: mirror.us.leaseweb.net
repo id repo name status
base CentOS-6 – Base 6,706
centos-sclo-sclo CentOS-6 – SCLo sclo 495
epel Extra Packages for Enterprise Linux 6 – x86_64 12,505
extras CentOS-6 – Extras 53
updates CentOS-6 – Updates 1,288
repolist: 21,051
“`

或者,我们可以运行以下命令查看详细信息:

“`

yum repolist all | grep “epel\|ius

  • epel: mirror.steadfast.net
    epel Extra Packages for Enterprise Linux 6 enabled: 12,509
    epel-debuginfo Extra Packages for Enterprise Linux 6 disabled
    epel-source Extra Packages for Enterprise Linux 6 disabled
    epel-testing Extra Packages for Enterprise Linux 6 disabled
    epel-testing-debuginfo Extra Packages for Enterprise Linux 6 disabled
    epel-testing-source Extra Packages for Enterprise Linux 6 disabled
    ius IUS Community Packages for Enterprise disabled
    ius-archive IUS Community Packages for Enterprise disabled
    ius-archive-debuginfo IUS Community Packages for Enterprise disabled
    ius-archive-source IUS Community Packages for Enterprise disabled
    ius-debuginfo IUS Community Packages for Enterprise disabled
    ius-dev IUS Community Packages for Enterprise disabled
    ius-dev-debuginfo IUS Community Packages for Enterprise disabled
    ius-dev-source IUS Community Packages for Enterprise disabled
    ius-source IUS Community Packages for Enterprise disabled
    ius-testing IUS Community Packages for Enterprise disabled
    ius-testing-debuginfo IUS Community Packages for Enterprise disabled
    ius-testing-source IUS Community Packages for Enterprise disabled
    “`

对于 Fedora 系统,运行以下命令来启用一个仓库:

“`

dnf config-manager –set-disabled epel-testing

“`

或者,可以通过手动编辑适当的 repo 文件来完成。为此,打开相应的 repo 文件并将值从 enabled=0 改为 enabled=1(启用仓库)或从 enabled=1 变为 enabled=0(禁用仓库)。

即从:

“`
[epel]
name=Extra Packages for Enterprise Linux 6 – $basearch

baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch

mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch
failovermethod=priority
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
“`

改为:

“`
[epel]
name=Extra Packages for Enterprise Linux 6 – $basearch

baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch

mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch
failovermethod=priority
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
“`


via: https://www.2daygeek.com/how-to-add-enable-disable-a-repository-dnf-yum-config-manager-on-linux/

作者:Prakash Subramanian 选题:lujun9972 译者:MjSeven 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

主题测试文章,只做测试使用。发布者:eason,转转请注明出处:https://aicodev.cn/2018/11/11/%e5%a6%82%e4%bd%95%e5%9c%a8-centos-%e4%b8%ad%e6%b7%bb%e5%8a%a0%e3%80%81%e5%90%af%e7%94%a8%e5%92%8c%e7%a6%81%e7%94%a8%e4%b8%80%e4%b8%aa%e4%bb%93%e5%ba%93/

(0)
eason的头像eason
上一篇 2018年11月11日
下一篇 2018年11月11日

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信