云网牛站
所在位置:首页 > Linux教程 > 玩转RHEL、CentOS、Debian、Ubuntu的软件包管理器

玩转RHEL、CentOS、Debian、Ubuntu的软件包管理器

2018-07-24 21:09:04作者:妙正灰稿源:米饭粑

下面教你玩转Linux云服务器中的四大主流操作系统RHEL、CentOS、Debian、Ubuntu的软件包管理器。本文所要讲的内容跟你需要安装环境或者是升级环境有很大的关系,如果你遇到无法升级的情况,那可能需要更换软件源了。

 

文章的主题

RHEL、CentOS 的 yum 工具和 Debian、Ubuntu 的 APT 工具都是一个非常好的前端软件包管理器,它们可以帮助我们便捷的安装二进制软件无需编译,同时还可以自动安装该软件依赖的库或其他软件,还可以帮助操作系统保持最新状态。

这里就介绍一下 yum 和 apt 的用法。

 

一、升级系统,更新软件

1.RHEL、CentoS

RHEL、CentOS 通过如下命令就可以自动更新操作系统以及通过软件源安装的全部软件:

yum update

会同时更新软件的缓存,获取软件版本信息,然后再通过比较当前系统的软件版本,如果软件源的更新,那么就进行更新。

注意安装完成后, 你下载用于安装的包仍然保留在系统中,要释放空间,需要使用如下命令:

yum clean packages #清除缓存目录下的软件包

yum clean headers #清除缓存目录下的 headers

yum clean oldheaders #清除缓存目录下旧的 headers

yum clean 或 yum clean all #清除缓存目录下的软件包及旧的headers

2.Debian、Ubuntu

Debian、Ubuntu 通过如下命令就可以自动更新操作系统以及通过软件源安装的全部软件:

apt update && apt upgrade

apt update 是更新软件源缓存,apt upgrade 是更新软件,判断原理也是比较软件源和本地软件的版本并进行升级。

Debian 和 Ubuntu 还有 apt-get dist-upgrade 和 do-release-upgrade 命令可用,但是会升级整个系统到最新版本,例如 Debian 8.10 会升级到 Debian 9.4,这可能会导致云计算没有识别你的 Linux 内核而无法进入系统,同时系统镜像功能也会失效。

注意安装完成后,你下载用于安装的包仍然在你的 /var 目录下,要释放空间,记得用 apt-get clean 和 apt-get autoclean 将它们删除或移到别的地方。

 

二、更换软件源

这里就是重点来了,如何解决本次的软件源暂时无法使用的问题呢? 那就是提前换一个可以使用的软件源。

这里需要用到代码编辑器和SFTP软件。

1.RHEL、CentoS

修改 /etc/yum.repos.d/ 目录下的文件,例如:CentOS-Base.repo 、epel.repo 等,这里以修改 CentOS 7 本身的软件源文件 CentOS-Base.repo 为例:

将 CentOS-Base.repo 修改为 CentOS-Base.repo.old

然后创建一个新的 CentOS-Base.repo 文件,写入清华源的内容:

# CentOS-Base.repo

#

# The mirror system uses the connecting IP address of the client and the

# update status of each mirror to pick mirrors that are updated to and

# geographically close to the client.  You should use this for CentOS updates

# unless you are manually picking other mirrors.

#

# If the mirrorlist= does not work for you, as a fall back you can try the

# remarked out baseurl= line instead.

#

#

[base]

name=CentOS-$releasever - Base

baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos/$releasever/os/$basearch/

#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

#released updates

[updates]

name=CentOS-$releasever - Updates

baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos/$releasever/updates/$basearch/

#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

#additional packages that may be useful

[extras]

name=CentOS-$releasever - Extras

baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos/$releasever/extras/$basearch/

#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

#additional packages that extend functionality of existing packages

[centosplus]

name=CentOS-$releasever - Plus

baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos/$releasever/centosplus/$basearch/

#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus

gpgcheck=1

enabled=0

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

然后运行 yum makecache 更新软件源缓存即可。

等问题修复,将该文件删除并将 CentOS-Base.repo.old 重新命名回来并更新缓存即可。

如果是 CentOS 6 可以把上面的7改成6,或者其他 CentOS 版本可以参考:https://mirror.tuna.tsinghua.edu.cn/help/centos/

2.Debian、Ubuntu

修改 /etc/apt/sources.list 文件,重命名为 /etc/apt/sources.list.old

然后重新创建 /etc/apt/sources.list 文件,内容为:

# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释

deb https://mirrors.tuna.tsinghua.edu.cn/OS/ CODE main restricted universe multiverse

# deb-src https://mirrors.tuna.tsinghua.edu.cn/OS/ CODE main restricted universe multiverse

deb https://mirrors.tuna.tsinghua.edu.cn/OS/ CODE-updates main restricted universe multiverse

# deb-src https://mirrors.tuna.tsinghua.edu.cn/OS/ CODE-updates main restricted universe multiverse

deb https://mirrors.tuna.tsinghua.edu.cn/OS/ CODE-backports main restricted universe multiverse

# deb-src https://mirrors.tuna.tsinghua.edu.cn/OS/ CODE-backports main restricted universe multiverse

deb https://mirrors.tuna.tsinghua.edu.cn/OS/ CODE-security main restricted universe multiverse

# deb-src https://mirrors.tuna.tsinghua.edu.cn/OS/ CODE-security main restricted universe multiverse

# 预发布软件源,不建议启用

# deb https://mirrors.tuna.tsinghua.edu.cn/OS/ CODE-proposed main restricted universe multiverse

# deb-src https://mirrors.tuna.tsinghua.edu.cn/OS/ CODE-proposed main restricted universe multiverse

注: 其中,OS 代表 debian 或者 ubuntu,CODE 代表发型代号,例如 Ubuntu 18.04 是 artful,Debian 9 是 stretch

展示一下 Ubuntu 18.04 的清华源替换方式:

# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释

deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse

# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse

deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse

# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse

deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse

# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse

deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse

# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse

# 预发布软件源,不建议启用

# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse

# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse

等问题修复,将该文件删除并将 /etc/apt/sources.list.old 重新命名回来并更新缓存即可。

使用阿里云提供的默认软件源的话,走的是 ECS 的内网速度更加的快而且走的公网也更加安全可靠。

 

三、添加第三方软件源

由于安全和维护的考量,当操作系统版本冻结后,这个发型的版本的操作系统下所有的软件版本号就会冻结,不再进行功能性升级只进行安全更新。就比如说 Debian 9 默认的 MariaDB 是 10.0,CentOS 7 默认的 MariaDB 是 5.5 ,那如果我们想用 10.2 的特性就不行了。

这时候通过添加第三方软件源就可以解决了,这里已添加 MariaDB 官方提供的软件源为例:

1.RHEL、CentOS

创建 /etc/yum.repos.d/nginx.repo 文件,内容如下,以 CentOS 7 为例:

# MariaDB 10.2 CentOS repository list - created 2018-07-24 08:16 UTC

# http://downloads.mariadb.org/mariadb/repositories/

[mariadb]

name = MariaDB

baseurl = http://mirrors.aliyuncs.com/mariadb/yum/10.2/centos7-amd64

gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB

gpgcheck=1

更新缓存:

yum makecache

安装 MariaDB:

yum install MariaDB-server MariaDB-client

2.Debian、Ubuntu

这里以 Debian 9 为例

1]、安装一下 software-properties-common 和 dirmngr :

apt-get install software-properties-common dirmngr

Ubuntu 不需要安装 dirmngr,直接 apt-get install software-properties-common 就行

2]、导入 Key 以校验软件的真实性:

apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xF1656F24C74CD1D8

3]、加入软件源:

add-apt-repository 'deb [arch=amd64,i386,ppc64el] http://mirrors.aliyuncs.com/mariadb/repo/10.2/debian stretch main'

Ubuntu 将 10.2/debian 改成 ubuntu 就行。

4]、更新软件源缓存并安装 MariaDB

apt update & apt install mariadb-server

 

相关主题

Linux软件包管理基本操作入门

精选文章
热门文章