【云计算的1024种玩法】玩转四大主流操作系统的软件包管理器

简介: 目前收到了阿里云关于 “华北1(青岛)地域的ECS Linux系统安装源(yum/deb/apt等)暂停服务进行升级” 的通知,这对于服务器本身的运行并没有影响,但是如果我们需要安装环境或者升级环境,就会遇到无法升级的情况。

前言

目前收到了阿里云关于 “华北1(青岛)地域的ECS Linux系统安装源(yum/deb/apt等)暂停服务进行升级” 的通知,这对于服务器本身的运行并没有影响,但是如果我们需要安装环境或者升级环境,就会遇到无法升级的情况。

如果遇到这种情况,我们应该怎么办呢? 这里就教大家如何应对相关问题。 更换软件源可以直接到 教程 下的 更换软件源 学习。

介绍

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

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

要求 & 收获

需要使用到的产品:

(包括非阿里云)服务器/ECS/轻量应用服务器

通过本文你将讲学到:

RHEL、CentOS、Debian、Ubuntu 四大主流操作系统的软件包管理器使用教程

教程

升级系统 & 更新软件

RHEL、CentoS

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

yum update

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

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

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

Debian、Ubuntu

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

apt update && apt upgrade

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

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

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

更换软件源

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

这里需要用到代码编辑器和SFTP软件,如果没有安装,建议参考:【云计算的1024种玩法】ECS和轻量应用服务器的远程控制入门

RHEL、CentoS

修改 /etc/yum.repos.d/ 目录下的文件,例如:CentOS-Base.repoepel.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 版本可以参考:https://mirror.tuna.tsinghua.edu.cn/help/centos/

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 或者 ubuntuCODE 代表发型代号,例如 Ubuntu 18.04artfulDebian 9stretch

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

# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main restricted universe multiverse

# 预发布软件源,不建议启用
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-proposed main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-proposed main restricted universe multiverse

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

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

添加第三方软件源

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

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

RHEL、CentOS

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

# MariaDB 10.2 CentOS repository list - created 2018-01-09 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

更多版本请参考:

https://downloads.mariadb.org/mariadb/repositories/#mirror=neusoft

更新缓存:

yum makecache

安装 MariaDB:

yum install MariaDB-server MariaDB-client

Debian、Ubuntu

这里以 Debian 9 为例

一、 安装一下 software-properties-commondirmngr

apt-get install software-properties-common dirmngr

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

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

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

三、 加入软件源:

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

Ubuntu 将 10.2/debian 改成 ubuntu 就行

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

apt update & apt install mariadb-server

更多版本请参考:

https://downloads.mariadb.org/mariadb/repositories/#mirror=neusoft

目录
相关文章
|
4月前
|
Web App开发 存储 物联网
操作系统的演变与未来:从单任务到多任务再到云计算
操作系统作为计算机科学的核心,其发展历程映射了技术进步的轨迹。从早期的单任务系统,到支持多任务操作的复杂系统,再到今天以云计算为基础的分布式系统,每一步变革都极大地影响了计算机的使用方式和人们的日常生活。本文将探讨操作系统的演变,分析其对社会的深远影响,并展望未来可能的发展趋势。 【7月更文挑战第31天】
56 3
|
16天前
|
存储 人工智能 自然语言处理
OS Copilot"作为一款操作系统辅助软件应运而生,旨在提升用户使用电脑的效率
随着AI技术的发展,"OS Copilot"作为一款操作系统辅助软件应运而生,旨在提升用户使用电脑的效率。它具备智能命令建议、代码片段生成、文件管理助手及任务自动化等功能,适合日常办公与专业开发。安装简便,上手容易,能显著提高工作效率。
25 3
|
28天前
|
监控 Linux 云计算
Linux操作系统在云计算环境中的实践与优化###
【10月更文挑战第16天】 本文探讨了Linux操作系统在云计算环境中的应用实践,重点分析了其在稳定性、安全性和高效性方面的优势。通过具体案例,阐述了Linux如何支持虚拟化技术、实现资源高效分配以及与其他开源技术的无缝集成。文章还提供了针对Linux系统在云计算中的优化建议,包括内核参数调整、文件系统选择和性能监控工具的应用,旨在帮助读者更好地理解和应用Linux于云计算场景。 ###
36 3
|
1月前
|
存储 人工智能 自然语言处理
“OS Copilot”的操作系统辅助软件
【10月更文挑战第7天】随着AI技术的发展,"OS Copilot"作为一款操作系统辅助软件,通过智能命令建议、代码片段生成、文件管理助手及任务自动化等功能,极大提升了用户的工作效率,无论是日常办公还是专业开发都提供了强有力的支持。其简洁的安装流程、友好的用户界面和强大的搜索能力,使得这款软件成为提升生产力的得力助手。
38 2
|
3月前
|
存储 大数据 云计算
云计算演进问题之飞天云操作系统是起源如何解决
云计算演进问题之飞天云操作系统是起源如何解决
|
3月前
|
存储 人工智能 安全
操作系统的演变与未来:从单任务到多任务,再到云计算
本文将探讨操作系统的发展历程,从早期的单任务系统,到现代的多任务、多用户系统,再到未来的云计算和分布式系统。我们将深入分析这些变化如何影响计算机科学的发展,以及它们如何塑造我们对技术的理解和期望。
|
3月前
|
机器学习/深度学习 网络安全 TensorFlow
探索操作系统的心脏:内核与用户空间的奥秘云计算与网络安全:技术挑战与未来趋势深度学习中的卷积神经网络(CNN)及其在图像识别中的应用
【8月更文挑战第29天】在数字世界的每一次点击与滑动背后,都隐藏着一个不为人知的故事。这个故事关于操作系统——计算机的灵魂,它如何协调硬件与软件,管理资源,并确保一切运行得井井有条。本文将带你走进操作系统的核心,揭示内核与用户空间的秘密,展现它们如何共同编织出我们日常数字生活的底层结构。通过深入浅出的讲解和代码示例,我们将一同解锁操作系统的神秘面纱,理解其对现代计算的重要性。 【8月更文挑战第29天】本文将深入探讨卷积神经网络(CNN)的基本原理和结构,以及它们如何被广泛应用于图像识别任务中。我们将通过代码示例来展示如何使用Python和TensorFlow库构建一个简单的CNN模型,并训练
|
3月前
|
安全 网络安全 调度
云计算与网络安全:云服务、网络安全、信息安全等技术领域深入理解操作系统:进程调度的奥秘
【8月更文挑战第27天】本文将探讨云计算与网络安全之间的关联,包括云服务、网络安全、信息安全等技术领域。我们将通过代码示例来展示如何保护云计算环境中的数据和应用程序。最后,我们将讨论如何应对云计算环境中的网络安全挑战,以保护数据和应用程序免受攻击。
|
3月前
|
存储 缓存 算法
OS—设备独立性软件
OS—设备独立性软件
75 0