【Linux】开发工具(yum)
为什么要用包管理器?(yum等)
安装的步骤
1.网络下载
2.安装(就是往系统拷贝),必须使用root权限,安装到系统里,安装一次,任何人都能使用。(因为没有装到home里,而是装在系统里!)
-
普通用户要使用软件,不论是可执行程序还是配置文件等,有r或x权限就行了。
所以即使是拥有者和所属组都是root,whb也能进行
ls -ld
这样的操作。可以看到,给other开放了r和x权限。有x权限普通人就能进来.
Linux中安装软件的方法:
- 源码安装(复杂)
- 软件包安装——rpm
- 可能遇到软件间依赖问题:缺失/版本兼容性
- 包管理器yum(centos);apt/apt-get(ubantu)
- 包管理器可以帮我们自动解决依赖问题
什么是软件包?
-
在Linux下安装软件, 一个通常的办法是下载到程序的源代码, 并进行编译, 得到可执行程序.
- 但是这样太麻烦了, 于是有些人把一些常用的软件提前编译好, 做成软件包(可以理解成windows上的安装程序)放在一个服务器上, 通过包管理器可以很方便的获取到这个编译好的软件包, 直接进行安装.
-
软件包和软件包管理器, 就好比 “App” 和 “应用商店” 这样的关系.
-
yum(Yellow dog Updater, Modified)是Linux下非常常用的一种包管理器. 主要应用在Fedora, RedHat, Centos等发行版上.
什么是包管理器?
就像是我们手机里的应用商城。
包管理器种类多,主要是yum和apt。
Linux上的软件比如ls/pwd是谁提供的?系统预装指令就像手机预装app。
系统怎么知道去哪里下载?
评估一个操作系统要看内核版本、社区、文档、人群、问题等。这些都是操作系统的生态问题。
操作系统的配套软件属于生态的一环,做得好能吸引更多人使用,这就是为什么配套软件存在。
如何理解这个过程?
我们的linux机器想要安装软件,一定是要有对应的社区提前帮我们买好了一些服务器,比如centos、ubantu都有自己的社区。
社区里有大大小小的开发者,他们开发出软件的源代码托管到社区官网上或者github上。
将源代码编译形成属于平台的文件,形成一个可以被直接安装的软件。
还要把这个编好的软件上到对应的应用商店。
接下来我们就需要用自己linux里预装的软件(yum或apt),去官网的服务器上下载,然后下载与安装。
全世界这么多企业,都需要用到这软件,所以社区不会倒闭,发起募捐就有人捐款。(一旦你用了我,你就不期望我倒闭)
所以开源,本质是一种商业模式。
我的机器怎么知道下载链接?
我们知道下载任何东西都得有下载链接,为什么我们yum加上对应软件,就能安装了呢?我们的机器是怎么知道对应的软件在哪的呢?
因为操作系统内置链接。
这些社区与资料或者说生态大多在国外,所以内置链接默认是外网链接。比如centos的内置链接:www.centos.org。
所以我们想装软件要么卡要么装不了。
所以有人将国外的网站镜像过来,也就是别人有什么东西,拷贝一份到国内。定期把外网的东西同步过来,同时更改下载链接,也就是切换镜像源。
比如阿里云,清华大学都有自己的镜像源。
安装
安装一个sl软件
比如我们可以强制安装一个sl的软件
可以看到它的体结构,和版本。
下载大小是14k,安装大小是17k(因为下载的包是压缩包)。
这个rpm结尾的,就是安装包。
然后帮我们做各种健全,保证我们安装是合法的。
然后就帮我们安装。
sl
,是一个跑动的火车。
推荐在联网状态下安装。
怎么看联网没?
ping -c3 www.baidu.com
然后能看到这样,就说明联网了。
(云服务器都是联网的)
怎么看支持的所有软件?
sudo yum list
但这样太多了,所以
sudo yum list sl
我们就可以找关键字中包含sl的所有软件(还是很多)。
sl.x86_64
怎么理解后面写的这个x86_64?
这些开发者可能把源代码在64位和32位下都编了一份。都放到社区上了。
我们当前的centos系统本身是64位,所以下载的是x86_64的软件,不是32位的软件。
中间这个是版本。
@epel是提供这个软件的平台。
怎么卸载软件?
sudo yum remove -y sl
(不要问我,直接删)
remove换成install就是下载,sudo yum install -y sl
一个是install,一个是remove。
怎么看下载链接在哪?
我们刚才说了,云服务器上会内置下载链接,怎么知道在哪呢?
在centos下,一般在/etc/yum.repos.d/
cd /etc/yum.repos.d/
可以看到,这个/etc/yum.repos.d/
路径下,放的就都是yum源配置文件。
其中,CentOS-Base.repo称为稳定yum源。
我们可以vim CentOS-Base.repo
,将其打开。
这里面对应的就是下载链接。
我们可以看到这里的不是国外的镜像源,而是对应的云服务器的,图中的是阿里云。(就不用自己配了)
可以在网上搜索更改更改yum源的教程或博客。
就是把老的先备份,然后下新的,再清理缓存、生成新的缓存。
软件是被分类的。base的一般是稳定软件。epel则是扩展软件源。epel没问题就会慢慢迁到base里,这样保持软件池的稳定。
本文到此结束。