本篇主要记录常用的软件安装和管理方式,主要是 yum/rpm/dnf/apt/pip;大致都是一样的,主要是部分软件提供了解决依赖的功能;内容不包括源码安装,源码安装情况相对比较复杂,后续有时间再补充。
约定:
? ? 案例所用模板软件均为 python
? ? 案例所用模板命令均为 dig
Linux安装软件,一般分为两种,一种是源码编译或者解压安装,另外的就是rpm包的安装了,yum /dnf/apk??等命令,是在rpm的基础上增加了解决依赖的功能
很多时候,软件都是有依赖的,所以需要多个包依次安装或者同时安装,这也是为什么需要yum?
rpm -ivh python.rpm # 安装rpm包
rpm -ivh --nodeps python.rpm # 强行安装,不检查依赖
-i|--install 安装
-U|--upgrade 更新
-v 打印详情
-h, --hash 打印进度条,具体是通过hash打印,没仔细了解
rpm 的数据存储在rpmdb 中,如下提供的是一些常用的rpm软件的查询方式
以下参数需配合-q使用
-q, --query 查询,其他查询命令均需要搭配-q使用
-a, --all query/verify all packages
rpm -qa|grep python
rpm -qa python
-c, --configfiles list all configuration files
rpm -qc samba-common 需要有配置文件的软件才有返回值
-d, --docfiles list all documentation files
rpm -qd python
-dump 查看可以导出的文件
rpm -q --dump python
-l, --list list files in package
rpm -ql python
-s, --state display the states of the listed files
rpm -qs python
-R 查询软件依赖
rpm -qR python
-f, --file 查询命令所属rpm,命令需全路径
rpm -qf /bin/python
-i 查询rpm包的信息,包含编译时间和安装时间
rpm -qi python
卸载尽量使用yum卸载!尽量避免强制卸载!!特别是依赖多且不清楚用途的软件!
千万别强制卸载glibc,如果glibc版本不对,可以升级或降级
rpm -e python.rpm 卸载rpm包,如有依赖会卸载失败
rpm -e --nodeps python.rpm 强行卸载,不检测依赖,非必要不建议使用(可能导致系统挂掉)
--test don't install, but tell if it would work or not
yum 是一个常用的软件管理软件,能看到是基于python开发的一个脚本,主要是能解决软件包的依赖问题,系统python解释器是会影响到yum命令的!
# file /bin/yum
/bin/yum: Python script, ASCII text executable
在RHEL 8版本开始自带dnf ,大致用法是一样的,dnf 是 yum 的更现代、更强大的替代品,它提供了许多 yum 所没有的功能,例如事务支持、原子更新、高级查询、软件包组和模块支持、Snap 和 Flatpak 支持以及增强的安全性。
有时候需要通过命令查询软件,provides 就很有用了
查询软件信息
yum info python
查询命令所属软件,或者软件全名
yum provides dig
yum provides python*
搜索软件包
yum search python
查询可用repo
yum repolist
查询软件依赖
yum deplist python
安装某个软件或某些软件
安装软件 支持多个软件 空格隔开 -y 可以自动确认
yum install python
更新
yum update python
降级 这个在包名或版本不一样时有用
yum downgrade python
重新安装
yum reinstall python
安装当前目录下的所有软件,并解决依赖问题(前提是,该目录只有rpm包,没有其他文件),在某些软件需要一整套安装的时候
yum install *
因为yum可以解决依赖,还有yum源,所以在某些网络不通的情况,我们可以通过yum解决依赖问题并下载所有相关的包,用来在网络不通的主机上安装软件
下载yum源上面的包到本地,并下载相关依赖包,目录要写全(不能写.代替当前目录)
yumdownloader --resolve docker-engine-17.05.0.ce-1.el7.centos.x86_64.rpm --destdir /tmp/docker_rpm
安装下载的rpm包,进入下载目录或者复制的目录
cd /tmp/docker_rpm
yum install *
yum calen all 清理元数据缓存
yum makecache 生成元数据缓存
yum load-transaction /path/to/xxx.nnEh_l.yumtx 加载未完成的事务
# ls -l /etc/yum.repos.d
这个目录下,所有.repo 后缀的都是yum源配置文件,可以支持多个源
# /etc/yum.conf
配置文件,配置日志缓存等策略
# /var/cache/yum/
缓存位置,这个一般也不看
这软件确实比yum高级,还支持别名?dnf alias add rm=remove ,目前看到在Redhat系列 8版本的系统上才会自带,基础用法和yum一样
man dnf
Cache Files
/var/cache/dnf
Main Configuration
/etc/dnf/dnf.conf
Repository
/etc/yum.repos.d/
基本照着yum用就行了,yum源也是共用的,后续有需要补充再加进来
?不常用,所以就简单记录一下
1、apt 常用于 Debian 和 Ubuntu 等基于 Debian 的 Linux 发行版,而 yum 常用于 Red Hat Enterprise Linux (RHEL)、CentOS 和 Fedora 等基于 Red Hat 的 Linux 发行版
2、apt 使用 .deb 包格式,而 yum 使用 .rpm 包格式,.deb 包是 Debian 软件包管理系统 (dpkg) 的原生包格式,而 .rpm 包是 Red Hat Package Manager (RPM) 的原生包格式
3、apt 可用的大多数软件都是免费的而且数量多,而 yum 可用的大多数软件都是商业软件
4、apt 使用 `apt-get` 命令来安装软件包,而 yum 使用 `yum` 命令来安装软件包
apt-get update 更新软件包列表
apt-get install 安装软件包
apt-get remove 卸载软件包
apt-get purge 卸载软件包及其所有依赖项
apt-get clean 清理下载的软件包
apt-get autoremove 卸载不再需要的软件包
apt-get upgrade 升级所有已安装的软件包
apt-get dist-upgrade 升级所有已安装的软件包及其依赖项
-y 自动回答所有问题,默认值为“no”
-f 修复损坏的依赖关系
-v 详细模式,显示安装或卸载软件包的详细信息
-s 模拟模式,不实际安装或卸载软件包