【Linux基础开发工具 (一)】详解Linux软件生态与包管理器:从yum / apt原理到镜像源实战

🔥艾莉丝努力练剑:个人主页

专栏传送门:《C语言》《数据结构与算法》C/C++干货分享&学习过程记录Linux操作系统编程详解笔试/面试常见算法:从基础到进阶

⭐️为天地立心,为生民立命,为往圣继绝学,为万世开太平


**🎬艾莉丝的简介:**


🎬艾莉丝的Linux专栏简介:


目录

前期回顾

[1 国内Linux软件安装源的一些官方链接](#1 国内Linux软件安装源的一些官方链接)

[1 ~> 软件包管理器](#1 ~> 软件包管理器)

[1.1 软件包的概念](#1.1 软件包的概念)

[1.2 了解Linux软件生态](#1.2 了解Linux软件生态)

[1.2.1 Linux下载软件的过程(Ubuntu、Centos、other)](#1.2.1 Linux下载软件的过程(Ubuntu、Centos、other))

[1.2.2 操作系统的好坏评估------生态问题](#1.2.2 操作系统的好坏评估——生态问题)

[1.2.3 为什么会有人免费特定社区提供软件,还发布?还提供云服务器让你下载?](#1.2.3 为什么会有人免费特定社区提供软件,还发布?还提供云服务器让你下载?)

[1.2.4 软件包依赖的问题](#1.2.4 软件包依赖的问题)

[1.2.5 镜像源:国内镜像源](#1.2.5 镜像源:国内镜像源)

[1.3 最佳实践:yum具体操作](#1.3 最佳实践:yum具体操作)

[1.3.1 查看软件包](#1.3.1 查看软件包)

[1.3.2 安装软件](#1.3.2 安装软件)

[1.3.3 卸载软件](#1.3.3 卸载软件)

[1.3.4 注意事项](#1.3.4 注意事项)

[1.4 最佳实践:安装源](#1.4 最佳实践:安装源)

[1.5 图解yum / apt:包管理器](#1.5 图解yum / apt:包管理器)

博主手记

结尾


前期回顾

1 国内Linux软件安装源的一些官方链接



1 ~> 软件包管理器

1.1 软件包的概念

1、在Linux下安装软件,一个通常的办法是下载到程序的源代码,并进行编译,得到可执行程序;

2、但是这样太麻烦了,于是有些人把一些常用的软件提前编译好,做成软件包(可以理解成windows上的安装程序)放在一个服务器上,通过包管理器可以很方便的获取到这个编译好的软件包,直接进行安装;

3、软件包和软件包管理器,就好比"App"和"应用商店"这样的关系;

4、yum(Yellow dogUpdater,Modified)是Linux下非常常用的一种包管理器.主要应用在Fedora,RedHat,Centos等发行版上;

5、Ubuntu:主要使用apt(Advanced PackageTool)作为其包管理器。apt同样提供了自动解决依赖关系、下载和安装软件包的功能。

1.2 了解Linux软件生态

1.2.1 Linux下载软件的过程(Ubuntu、Centos、other)

1.2.2 操作系统的好坏评估------生态问题

1.2.3 为什么会有人免费特定社区提供软件,还发布?还提供云服务器让你下载?

1.2.4 软件包依赖的问题

1.2.5 镜像源:国内镜像源

bash 复制代码
sudo yum install -y epel-release

1.3 最佳实践:yum具体操作

1.3.1 查看软件包

通过yumlist命令可以罗列出当前一共有哪些软件包,由于包的数目可能非常之多,这里我们需要使用grep命令只筛选出我们关注的包,例如:

bash 复制代码
# Centos
$ yum list | grep lrzsz 
lrzsz.x86_64        0.12.20-36.el7        @base

# Ubuntu
$ apt search lrzsz
Sorting... Done
Full Text Search... Done
cutecom/focal 0.30.3-1build1 amd64
Graphical serial terminal, like minicom

lrzsz/focal,now 0.12.21-10 amd64 [installed]
    Tools for zmodem/xmodem/ymodem file transfer
 
$ apt show lrzsz
Package: lrzsz
Version: 0.12.21-10
Priority: optional
Section: universe/comm
Origin: Ubuntu
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Original-Maintainer: Martin A. Godisch <godisch@debian.org>
...

注意事项:

1、软件包名称:主版本号.次版本号.源程序发行号-软件包的发行号.主机平台.cpu架构;

2、"x86_64"后缀表示64位系统的安装包,"i686"后缀表示32位系统安装包.选择包时要和系统匹配;

3、"el7"表示操作系统发行版的版本."el7"表示的是centos7/redhat7."el6"表示centos6/redhat6;

4、最后一列,base表示的是"软件源"的名称,类似于"小米应用商店","华为应用商店"这样的概念;

5、Ubuntu有上述有详细介绍。

1.3.2 安装软件

通过yum,我们可以通过很简单的一条命令完成gcc的安装------

bash 复制代码
# Centos
$ sudo yum install -y lrzsz

# Ubuntu
$ sudo apt install -y lrzsz

1、yum/apt会自动找到都有哪些软件包需要下载,这时候敲"y"确认安装;
2、出现"complete"字样或者中间未出现报错,说明安装完成。

注意事项:

(1)安装软件时由于需要向系统目录中写入内容,一般需要sudo或者切到root账户下才能完成;

(2)yum / apt安装软件只能一个装完了再装另一个。正在yum / apt安装一个软件的过程中,如果再尝试用yum / apt安装另外一个软件,yum/apt会报错;

(3)如果yum/apt报错,uu们可以去问一下AI。

1.3.3 卸载软件

我们也可以用一条命令解决------

bash 复制代码
# Centos
sudo yum remove [-y] lrzsz

# Ubuntu
sudo apt remove [-y] lrzsz

1.3.4 注意事项

关于yum / apt的所有操作,必须保证主机(虚拟机)网络畅通!!!

可以通过ping指令验证------

bash 复制代码
ping www.baidu.com

# 当天yum / apt也能离线安装,但是和我们当前⽆关,暂不关⼼。 

1.4 最佳实践:安装源

Cetnos安装源路径------

bash 复制代码
$ ll /etc/yum.repos.d/
total 16
-rw-r--r-- 1 root root 676 Oct 8 20:47 CentOS-Base.repo # 标准源 
-rw-r--r-- 1 root root 230 Aug 27 10:31 epel.repo # 扩展源 
# 安装扩展源,方便演⽰ 
# $ sudo yum install -y epel-release

Ubuntu安装源路径------

bash 复制代码
$ cat /etc/apt/sources.list # 标准源 
$ ll /etc/apt/sources.list.d/ # 扩展源

# ubuntu 安装扩展源,就结合未来具体场景

关于更新安装源,能够说明原理即可。云服务器不用考虑,因为软件源都是国内的了。

1.5 图解yum / apt:包管理器


博主手记


结尾

uu们,本文的内容到这里就全部结束了,艾莉丝再次感谢您的阅读!

往期回顾:

【Linux权限 (二)】Linux权限机制深度解析:umask如何决定默认权限与粘滞位的妙用

结语: 本期我们在前一篇博客的基础上继续深入学习了Linux中的指令篇,希望对学习Linux指令相关内容的uu有所帮助,不要忘记给博主"一键四连"哦!

🗡博主在这里放了一只小狗,大家看完了摸摸小狗放松一下吧!🗡

૮₍ ˶ ˊ ᴥ ˋ˶₎ა

相关推荐
洛克大航海7 小时前
Linux 中如何查看系统的位数
linux·ubuntu
illuspas7 小时前
Ubuntu 24.04下编译支持ROCm加速的llama.cpp
linux·ubuntu·llama
月巴月巴白勺合鸟月半7 小时前
生成私钥公钥
运维·服务器
七七七七077 小时前
【计算机网络】深入理解网络层:IP地址划分、CIDR与路由机制详解
linux·服务器·计算机网络·智能路由器
快乐的钢镚子7 小时前
思腾合力云服务器远程连接
运维·服务器·python
王道长服务器 | 亚马逊云7 小时前
AWS + SEO:让网站从服务器层面赢在搜索引擎起跑线
服务器·搜索引擎·aws
敲上瘾7 小时前
Linux系统C++开发工具(四)—— jsoncpp 使用指南
linux·服务器·网络·c++·json
杰克尼7 小时前
单词11/1
1024程序员节