linux软件管理
linux软件管理
- 小技巧
- rpm包管理器
- centos的yum
- ubuntu的apt
1 小技巧
1.1.1救援小实例:
删除 /lib64/libc.so.6之后,救援模式.
进入救援模式有一个/,这个是光盘的/. 原系统的根在/mnt/sysroot下.
救援模式下rpm安装,记得指定安装路径
rpm -ivh /run/install/repo/Packages/rpm-xxxx --root=/mnt/sysroot
1.1.1光盘自动挂在实例
挂在iso文件,查看里面的rpm安装包
#自动安装的设置
[root@fyg cd]# yum install autofs -y
[root@fyg cd]# vim /etc/auto.master
/misc /etc/auto.misc
[root@fyg cd]# systemctl start enable --now
#进入文件后会自动挂在
[root@fyg ~]# cd /misc/cd/
[root@fyg cd]# cd Packages/
#查看rpm包里面有什么
[root@fyg Packages]# rpm2cpio tree-1.6.0-10.el7.x86_64.rpm | cpio -tv
-rwxr-xr-x 1 root root 62768 Jun 10 2014 ./usr/bin/tree
drwxr-xr-x 2 root root 0 Jun 10 2014 ./usr/share/doc/tree-1.6.0
-rw-r--r-- 1 root root 18009 Aug 13 2004 ./usr/share/doc/tree-1.6.0/LICENSE
-rw-r--r-- 1 root root 4628 Jun 24 2011 ./usr/share/doc/tree-1.6.0/README
-rw-r--r-- 1 root root 4100 Jun 24 2011 ./usr/share/man/man1/tree.1.gz
2 包管理器
红帽用rpm
命令
rpm常用命令
#查询是否安装
rpm -q vsftpd
#配合脚本使用
[root@fyg ~]# rpm -q tree | echo $?
0
[root@fyg ~]# rpm -q echo;echo $?
package echo is not installed
1
#安装,需要写路径与文件名
[root@fyg Packages]# rpm -ivh vsftpd-3.0.2-25.el7.x86_64.rpm
Preparing... ################################# [100%]
Updating / installing...
1:vsftpd-3.0.2-25.el7 ################################# [100%]
#卸载软件,只需要写软件名就可以了.
[root@fyg Packages]# rpm -evh vsftpd
Preparing... ################################# [100%]
Cleaning up / removing...
1:vsftpd-3.0.2-25.el7 ################################# [100%]
#查看文件路径
rpm -ql vsftpd
#查看包的安装信息
rpm -qi vsftp
#查看磁盘的文件来源自那个包
rpm -qf /etc/issue
#查看配置文件
[root@fyg Packages]# rpm -qc httpd
#查看文档
[root@fyg Packages]# rpm -qd httpd
2.1 rpm包的其他相关
ll /var/lib/rpm
如果误删除包,可以加--force强制重新安装
rpm -ivh /xxxx/xxx --force
判断包是否合法
rpm -K tree-xxx #前提是需要导入key
#导入key
ll /etc/pki/rpm-gpg/
rpm --import /etc/pki/rpm-gpg/rxxxx
3 centos:yum&apt
- yum的客户端使用
- yum的自建仓库
- 利用别人封装好的rpm包升级内核(使用yum)
3.1 centos的软件管理工具yum
3.1.3组成
1、server:
- rpm包文件夹
- repodate文件夹。是包信息的索引
2、client:
- /etc/yum.conf
- /etc/yum.repo.d/*.repo
3.2 yum客户端
yum客户端的配置文件位置
/etc/yum.cof
/etc/yum.repos.d/*.repo
3.2.1 配置网络路径:
#腾讯仓库
https://mirrors.cloud.tencent.com/centos/8/BaseOS/x86_64/os/
#清华仓库
https://mirrors.tuna.tsinghua.edu.cn/centos/8-stream/
#使用仓库的标准为,查看文件夹内是否含有目录repodate/,如果含有repodate/ 就使用这个目录即可.
vim /etc/yum.repo.d/base.repo
-------------------------------
[Base]
name=base
baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos/7/os/x86_64/
gpgcheck=0
[Extra]
name=extra
baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos/7/extras/x86_64/
gpgcheck=0
[Epel]
name=epel
baseurl=https://repo.huaweicloud.com/epel/7/x86_64/
gpgcheck=0
~
3.2.2 本地光盘如何做镜像仓库
#安装自动挂在
[root@fyg cd]# yum install autofs -y
[root@fyg cd]# vim /etc/auto.master
/misc /etc/auto.misc
[root@fyg cd]# systemctl start enable --now
#进入文件后会自动挂在
[root@fyg ~]# cd /misc/cd/
[root@fyg cd]# cd Packages/
#编辑.repo文件
[base] #如果是centos8就需要分开appstream和baseos
name=CentOS
baseurl=file:///misc/cd #本地光盘,事先fs挂在好.参考低第10章,软件包管理中的挂在
https://mirrors.cloud.tencent.com/centos/7/os/x86_64/ #网上的数据腾讯云
https://mirrors.tuna.tsinghua.edu.cn/centos/7/os/x86_64/ #网上的清华云
gpgcheck=0
yum的命令
查看自己有哪些源
yum repolist
3.3 利用httpd,搭建yum服务器
一般会搭建两个源,一个是光盘带有的rpm包源,一个是epel源
#前提准备
yum install httpd
systemctl enabled httpd --now
firewall-cmd --add-port=80/tcp
setenforce 0
mkdir /var/www/html/7
mkdir -r /var/www/html/7/x86_64/
#创建仓库
cp "光盘里的所有东西" /var/www/html/7/x86_64/
#如果没有repodata源数据的情况下。
yum install createrepo -y
#在rpm安装包目录。
createrepo .
#这样rpm这个安装包目录就可以成为你的yum源了
11.1.3.1、自建epel仓库
#事先配好epel源
reposync --repoid=epel --download-metadate -p /var/www/html
#执行完成后会出现一个epel子目录,这个子目录就是仓库指定路径
11.1.3.2、centos7删除干净安装的包. centos8是自动全部卸载的
#因为yum的时候,yum会安装依赖包,但是卸载的时候不会,所以这里说一下怎么删除干净数据包
yum history
#查看第10步是什么操作
yum history info xx
#把第10步里的操作全部卸载掉.
yum history undo 10
#如果不应该卸载10的,那就
yum histoy redo 10
11.1.3.3、yum的缓存meta数据
#清理缓存
yum clearn all
3.4 yum重点掌握的参数
yum repolist
install
remove
info
list
clean all
provides
3.5 实例应用
3.5.1 实例:使用elrepo,升级内核
www.elrepo.org
#[centos7]
yum install https://www.elrepo.org/elrepo-release-7.el7.elrepo.noarch.rpm
#更新一下
yum repolist
#启用elrepo.repo里面的kernel仓库,并查看
yum list *kernel*
yum install kernel-lt.x86_64
#安装好以后会有两个内核.一个本身的内核,一个是最新安装的内核,开机的时候可以选择.
uname -r
#卸载新内核,记得重启使用旧内核
yum history undo xxx
yum remove
3.5.2 在一个不能上外网的机器上安装指定软件
这个软件依赖多,不仅是base源,还有epel源.
#能上网的机器,下载到指定目录下,这里是/data/
yum install nginx --downloadonly=/data/
#把这个文件拷贝到不能上网的机器上去
rpm -ivh /data/*
#或
yum install /data/*.rpm
4 ubuntu的软件管理apt
是debian流派.
- 类rpm的工具是dpkg.
- 类yum的工具是apt
4.1、dpkg包管理器
-i
:安装软件
-r
:卸载
-l
:列出已经安装的包
-s
: 安装详情
-L
: 安装的文件有哪些
-S
:来源于哪个包
4.2、apt安装
仓库信息路径: /etc/apt/sources.list
只要把原来的xxx.ubuntu.com 换成国内的就行了
记得更新apt update
这个是删除不干净的,配置文件会留下来:apt remove
彻底删除程序,apt purge
apt list
查看软件的详细信息:apt show ls
查看软件的不同的版本:apt-cache madison
4.3 apt-file
#用正则表达式搜索,以/sl结尾的
apt-file search -x '/sl$'
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?