赞
踩
yum 全称 Yellow dog Updater Modified,即黄狗升级器,作为 openEuler 中默认的安装软件程序,安装方式支持 本地安装
和 在线安装
。
其软件源可根据需要自行替换。
yum 适用的安装包: rpm 文件
yum 软件源: repo 文件
即对应文件后缀是以上述文件名结尾的
yum 可根据需要在不同Linux系统中安装,yum 是一款由Linux社区自行维护的软件,因此其软件源中的软件多为自由软件。
/etc/yum.repos.d/
可通过 ls 命令进行查看
如上图,openEuler.repo
则为本机器目前所拥有的 yum软件源,如需更换其他软件源,需使现在的软件源失效,不然可能存在冲突问题。
具体方法如下
利用 mv 命令
起到重命名的作用
以上方图示源文件示例
用输入以下命令,使原本的openEuler.repo
重命名位 opernEuler.repo.bak
即可
mv /etc/yum.repos.d/openEuler.repo /etc/yum.repos.d/openEuler.repo.bak
注意
查询 yum源所在目录 详细信息。
可知,其目录权限默认情况下,仅属主root拥有写操作权利。
其中文档详细信息中
d
表示该文档是 文档目录类型
rwxr-xr-x.
是文档权限说明
从左往右每三位视为一组,分别代表属主,属组,其他用户
每组中各位依次表示读r
写w
执行x
的权限
如果有对应字母则代表,该组具备对应的权限,如果为-
则表示不具备对应的权限
末尾的.
代表当前列表不具备除文档基本用户,属组,其他用户以外的权限。
否则会以+
表示注,有些文档的分组执行位会有特殊含义,不用
x
表示。
属主特权 Set UID 属组继承 Set GID 粘滞位 Sticky bit 某些执行文件中属主执行位的权限会以s字母表示属主特权。 某些文档目录中属组执行位的权限会以s字母表示属组继承。 某些文档目录中其他用户执行位的权限会以t字母表示粘滞位。 表示,如果其他用户在执行该程序命令时,暂时拥有了属主的身份和属主的权限。
即,例如vim 文档编辑文件的属主特权s存在,则其他用户用这个编辑文档时,创建的文档归属也是对应属主。在该目录下创建的任何文档,其属组都会被文档目录的属组替换。 该文档目录中的文档,除了文档目录的属主和属组会具备原本的读写执行权限不受影响外,其余的其他用户在操作目录中的文档,仅能对文档的属主是其自己的文档可以随意删除,编辑,其余属主的文档没办法编辑和删除。 从左往右第一个root即代表本目录的属主用户,第二个root代表属组,即属主用户(root)的主用户组。
因此,对原有源进行操作时,
最好保证现在登录的账户是root(超级管理员账户
)或采用提权操作
(sudo操作)
如何查看本地登录的账户
I. 查看shell 界面参数
如上图中 [ root@localhost ~] 即代表当前的登录用户为root
II. 通过users 命令
进行查询[root@localhost ~]# users root
- 1
- 2
方式多样,只要能把原来的源文件从 yum源 目录中移走
即可
可使用以下几种方式
mv /etc/yum.repos.d/*.repo ~
rm -f /etc/yum.repos.d/*.repo
原仓库可以离线添加
,也可以在线添加
从网上下载 yum 源文件
( .repo 文件 ) ,将其拷贝或移动到 yum源文件目录( /etc/yum.repos.d/
)
开源 yum 源文件下载地址参考
阿里云
https://mirrors.aliyun.com/repo/
华为云 (需要注册华为账号
)
https://www.huaweicloud.com/product/mirrors.html
如果是远程的机器,可以考虑采用 scp
的方式将其远程传输到Linux系统中。
但注意使用scp
的前提是,机器开启了ssh
服务。
可用systemctl 命令
进行查询。
systemctl is-active sshd.service
如果返回结果是active
:
代表本服务已启动。
如果返回结果是inactive
:
代表服务未启动,重新启动即可。
systemctl restart sshd
然后使用scp 命令
从远程终端复制过来即可。
scp
应该在打算拷贝repo文件过来的设备终端里使用。
命令格式如下:
scp (path-绝对路径:repo文件) 用户@( openEuler的IP地址 ):( path-绝对路径:存放repo文件的目录 )
其中,用户为openEuler中具有远程 ssh访问
权限的用户。
随后会自动生成密匙,系统会寻问是否确认要传输文件,输入yes
即可。
然后按提示,输入用户对应密码即可。
注意,所输入的内容皆出于安全考虑,会被隐藏。
windows系统使用 scp 命令示例。
如利用yum 源镜像文件
( iso 文件)
流程:
本地加载源镜像,以光驱形式导入等(注意
移动设备需挂载 [mount 命令
] 后使用)
本地加载的命令格式如下
//挂载
mount /dev/cdrom 建立的挂载点路径
//添加源仓库
yum-config-manager --add file://挂载点路径地址
挂载点URL地址需要写绝对路径,即从根目录(/
)开始
示例,如本机设备读取了镜像光驱,为使用其中文件,临时
挂载到/tmp/dvd
并将其加入到yum 源目录
命令如下
mount /dev/cdrom /tmp/dvd
yum-config-manager --add file:///tmp/dvd
结果如下:
直接用mount
挂载的设备仅本次开机生效,下次开机需要重新挂载。
如果希望下次开机也自动挂载,需要修改启动配置文件(
/etc/fastab
)
自动挂载
a.通过vim 命令
修改启动配置文件vim /etc/fastab
- 1
b.在其中空白地方添加以下内容
/dev/cdrom /tmp/dvd iso9660 defaults 0 0
- 1
c.保存文件后,输入
mount -a 命令
验证是否自动装载成功(即能否正常开机)mount -a
- 1
d.通过
df -h 命令
查看本机加载设备具体情况df -h
- 1
把手动挂载的镜像改为开机自动挂载示例
源镜像网址参考
https://www.centos.org/download/
在线添加即利用 yum 管理器
直接添加源仓库地址,具体可在网上搜索相应的地址资源。
流程:
yum-config-manager --add URl地址
在线添加yum 源仓库
形式有以下两种
yum-config-manager --add http://源仓库网络地址
yum-config-manager --add https://源仓库网络地址
如添加 阿里云
的源仓库地址。
// 阿里的基础软件源
yum-config-manager --add https://mirrors.aliyun.com/centos-stream/9-stream/BaseOS/x86_64/os
// 阿里的应用软件源
yum-config-manager --add https://mirrors.aliyun.com/centos-stream/9-stream/AppStream/x86_64/os
如果目标源是利用FTP 协议
进行加载
命令格式如下:
yum-config-manager --add ftp://搭载了 FTP源 的服务器的具体IP地址/ FTP 源所在的目录
注意,使用FTP 源所在目录
并不是使用绝对路径,而是从用户使用FTP
访问服务器时的所使用的共享目录的相对路径来配置,而非服务器中FTP 源
本身的绝对路径。
示例:
FTP服务器地址为 192.168.172.100
FTP源目录在服务器上的地址为 /var/ftp/pub/Centos7/
FTP服务器系统是 openEuler
则使用yum仓库管理添加命令为
yum-config-manager --add ftp://192.168.172.100/pub/Centos7/
因为FTP
访问,是有限制的,一般仅可对服务器配置好的共享目录进行操作,对于服务器本身的其他目录文件,我们是看不到的,更不用说,没有对应的操作权限。
不过采用FTP 协议
的前提是,本机和提供yum 源
的目标主机均开启了FTP
功能
即本机需要配置安装了FTP
功能
可以采用which 命令
或直接在终端输入ftp 命令
来检测本机是否开启了FTP 功能
查询
which ftp
或
ftp
如果结果如下
[root@localhost ~]# ftp
-bash: ftp:未找到命令
[root@localhost ~]# which ftp
which: no ftp in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin)
则代表本机没有FTP
功能,如果要使用FTP 源
,需安装FTP 程序
可采用本地安装
,或在线安装
形式安装FTP
,但需注意,二者接需要yum
中存在相应的依赖的安装包缓存,如果发现FTP
安装失败了,可以尝试把原本的yum源
复原后,安装好FTP
,再进行操作。
且注意,因为采用FTP
功能,如果存在VLAN 隔离
等二层或三层的安全策略,导致本机与FTP服务器
之间是不通的,无法使用FTP源
。
有可能在实际中,需要自己搭建FTP 服务器来供本局域网内的设备同时使用同一yum 源
的情况。
现模拟把 openEuler 服务器
作为 FTP 服务器
。
本机需要开启系统中的vsftpd 服务
,且修改配置,使本机作为服务端
,响应其他设备的发起的FTP 请求报文
。
可以通过systemctl 命令
检测本机是否启动了该服务
systemctl is-active vsftpd
如果返回结果是active
:
[root@localhost ~]# systemctl is-active vsftp.service
active
代表本服务已启动,可以进行下一步。
如果返回结果是inactive
:
如果是这样,代表未启动该服务,可以参考FTP
处查询的命令,也通过yum 命令
查询本机是否安装了 vsftpd 服务
yum list vsftpd
如图,则代表未安装但是有可用安装包,可以考虑在线安装
vsftpd服务。
在线安装
vsftpd 服务 命令参考
yum install -y vsftpd
安装好以后,需要启动该服务。
命令:
systemctl start vsftpd
当然,这样启动,仅针对本次开机状态有效,如果关机以后,下次启动机器,ftp 服务
并不会自动启动,如果希望ftp 服务
下次开机也自动启动的话,可以改用下面的命令启动ftp 服务
systemctl enable --now vsftpd
再次通过systemctl 命令
检测本机是否启动了该服务
systemctl is-active vsftpd
启动后,利用vim 命令
修改vsftpd
配置文件( /etc/vsftpd/vsftpd.conf )
vim /etc/vsftpd/vsftpd.conf
主要修改的字段有以下几样:
anonymous_enable :含义是是否允许用户匿名访问 FTP 服务器,YES 是,NO 否。
允许以后,其他设备可以不输入用户就可以访问 FTP服务器,访问时的用户身份为其他用户,按文档其他用户的权限来执行。
实际生产中,不建议
选择 YES ,不然会造成安全隐患。
local_enable : 含义是是否允许使用本地用户账号登录,为方便后续建议选YES。
write_enable : 能否通过FTP执行写的操作,即是否允许通过FTP进行上传,下载,删除的命令。
local_umask : 是用来规定用户使用FTP服务时,在FTP服务器共享目录中拥有的权限。
三个数字,分别表示 属主的权限 属组的权限 其他用户的权限
数值大小是由对应的 r( 读取 )w( 写入 ) x( 执行 )的比特位数值,按二进制换算为十进制的方式得出。
如:
rwx == 7
-w- == 2
但是由于,FTP 服务器是为了提供yum 源
给其他用户使用。
所以,这里的设置必须保证其他用户的权限为 r-x,即数值要为 5 或 7。
当然,若是使用yum 源
的属主,或同属组的用户登录,根据具体做出调整,不过建议是,使用openEuler
服务器的 root
用户创建用于共享的yum 源
目录即可以了。
出于安全考虑,一般都会确保使root
(超级管理员)仅可在本地登录。
注意 : 字段值需大写。
修改配置文件后,记得重启vsftpd服务
。
systemctl restart vsftpd
FTP 服务器的共享目录在/var/ftp/pub/
可以考虑使用镜像文件挂载的形式,或安装createrepo 程序
创建相应的yum 源(FTP)
。
createrepo /var/ftp/pub/源目录
创建好源目录后,可以检查环境配置了。
systemctl status vsftpd
宽松模式
setenforce 0
或禁用 SELinux,修改其配置文件中的默认状态为 disabled
。
配置文件在/etc/selinux/config
利用vim 命令
修改即可。
vim /etc/selinux/config
修改 SELINUX 字段的值为disabled
即可。
SELinux为Linux的内核安全模块
可以用getenforce 命令
查询其当前状态
返回值: 1 强制模式 | 0 宽松模式
关闭了会提示SElinux已禁用。
systemctl stop firewalld
或可以禁止防火墙,且不允许其下次开机自动启动
systemctl disable --now firewalld
备注
本机防火墙可以考虑添加FTP 服务
到白名单firewall-cmd --add-service=ftp
- 1
SELinux则使用以下命令将允许FTP通过的配置写入到其配置文件中
setsebool -P allow_ftpd_full_access 1
- 1
yum
安装软件时,默认会检测软件包的来源,如果是非官方的,会不允许安装,即类似于手机安装软件时,开启了应用程序安全验证。该功能可以取消,但是取消后,安装软件产生的后果自负。
具体操作如下,修改yum
的配置文件
vim /etc/yum.conf
文件内容如下
其中 gpgcheck
即为检查软件包来源选项,将其值改为 0
即可
使用外部源时,有可能源中的依赖会与系统的logo
包( openEuler-logos )冲突,因此最好先清理系统原本存在的logo
包。
可使用以下命令
yum remove -y openEuler-logos
清理
yum 原本存在的软件包缓存 【命令】
yum clean all
重新生成
新的yum软件包缓存 【命令】
yum make cache
或 更新
yum 软件源列表 【命令】
yum repolist -v
至此便完成了yum 软件源
的替换
虽然更换了yum 软件源
,但是并不意味着现在的软件源包含想要安装的软件,我们可以通过以下命令进行检测。
yum list 软件名
如果显示 Available Packages
则代表有可用包,可以直接安装。
如果显示Error
则代表目前源仓库没有可用安装包。
如果显示Installed Packages
则代表该程序已安装。
若发现源中不存在所需的安装包。
可以考虑更换另一个源,也可以选择本地安装包。
同时,也可以读取源文件,看一下是否所有源仓库路均开启了。
前面介绍了源文件如何进行更换,但是,有时候我们离线更换的源文件,里面并没有开启它所包含的所有源仓库。
具体可以通过cat 命令
查看对应源文件内容
如下 使用命令 cat Centos-vault-8.5.2111.repo
查看结果如下
可见图中红框内容enabled
的值为0,即代表该仓库实际并没有开启。
简单介绍一下yum 源文件
的仓库内容
[仓库名字,唯一]
name = 用以描述本仓库的信息
baseurl = 软件源的 URL 地址,实际安装软件搜索安装包时就是这里起作用,yum 会到这些地址里搜索软件包,如果有多条网址,则会按顺序到其中检索是否存在安装包,没有的话就下一条,如果 yum 源文件所有启用的仓库网址都不存在安装包,则向用户返回安装包不存在,即 Error 的情况。
gpgcheck = 该软件源仓库安装软件时是否需要检验安装包来源,若没有该项,则默认跟随系统中 yum 配置文件
enabled = 该仓库是否可用(1 可用:0 不可用)
gpgkey = 可以理解为官方密钥一样的存在,用于和 gpgcheck 搭配使用
因此实际应用中可以根据需要,手动创建yum 仓库文件
touch /etc/yum.repos.d/new.repo
将所需要的仓库按照格式编写到文件中即可。
但注意,yum
并非添加越多仓库越好,仓库过多可能存在冲突问题,导致明明具有可用安装包也无法安装对应软件。
在线安装
的命令格式如下 yum install [-y] 软件名字
本地安装
的命令格式如下 yum install [-y] (path绝对路径或相对路径:rpm 文件)
其中
-y
是可选参数,yum
安装软件时会提醒用户是否确认安装,如果添加了-y
参数,则自动确认安装。
一般适用于批量安装多个软件的时候
yum
可以一次安装多个软件
,
在线安装
只需要把所需要的软件名,用空格
隔开,加到install
后即可
离线安装
则利用通配符如*
(代表任意个数量的字符)、?
(代表任意一个字符)来使用即可。
命令格式如下
yum remove [-y] 软件名字
其中
-y
是可选参数,yum
安装软件时会提醒用户是否确认卸载,如果添加了-y
参数,则自动确认卸载。
注意并非所有软件都可以随意卸载,有时候存在系统保护的情况,如果要强行卸载受保护的软件,可能导致系统崩溃。
yum
本质上是一款非常强大的软件安装程序,本身针对的便是CentOS
内核的Linux系统
,会自动处理rpm 安装包
中涉及的依赖关系,且其本身除了可以更换自身的软件源,获取不同的安装包外,还可以搭配wget 命令
来使用(即使本地源仓库没有安装包,也可以在线通过wget
下载安装包后安装)。
不过yum
本地安装的时候,依然需要在线yum 源
,因为处理安装包中涉及的依赖关系时,需要在线下载安装相关依赖,所以本地安装并非就可以完全不用管yum 源
。
本文中主要介绍如何更换openEuler
中的yum 源
,当然其余使用yum
的系统也可以参考,重点在于找到yum
源文件所在目录即可,yum
会加载源文件所在目录中所有的repo 文件
,所以并非仅能存在一个repo 文件
。
但值得注意的是,实际使用中,并非仓库或源文件越多越好,因为存在多个安装包时,安装同一个文件其实可能会存在冲突,导致无法安装。
可能出现的问题如下:
源文件存在多个安装包,无法实现最佳候选安装。
删除冗余的 yum 源文件
成功安装
注:openEuler本质上使用的也是 CentOS 内核,因此若要在虚拟机上安装,最好还是选择该CentOS内核的Linux系统。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。