Linux 软件安装以及管理

2024-01-09

本篇主要记录常用的软件安装和管理方式,主要是 yum/rpm/dnf/apt/pip;大致都是一样的,主要是部分软件提供了解决依赖的功能;内容不包括源码安装,源码安装情况相对比较复杂,后续有时间再补充。

约定:
案例所用模板软件均为 python
案例所用模板命令均为 dig

一、 RPM

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

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/ 
缓存位置,这个一般也不看

三、dnf

这软件确实比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源也是共用的,后续有需要补充再加进来

四、apt

不常用,所以就简单记录一下

apt 与 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      模拟模式,不实际安装或卸载软件包
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Linux 软件安装以及管理 的相关文章

随机推荐

  • 一个寒假能学会黑客技术吗?看完你就知道了

    一个寒假能成为黑客吗 资深白帽子来告诉你 如果你想的是学完去美国五角大楼内网随意溜达几圈 想顺走一点机密文件的话 劝你还是趁早放弃 但是成为一名初级黑客还是绰绰有余的 你只需要掌握好渗透测试 Web安全 数据库 搞懂web安全防护 SQL注
  • 新能源预测数据集GEFCom Data,用于光伏发电、风电功率、负荷、电价预测

    引言 新能源在满足世界能源需求方面日益重要 其特点是 发电量在很大程度上取决于天气状况 为了有效地将其整合到电网中 对新能源发电量进行准确的预测是一项不可避免的要求 新能源准确预测成为一项有趣且新颖的挑战 虽然已有大量文献对新能源预测进行了
  • react-native使用动画Animated

    官方网文档 动画 Animated 一些精彩的例子 React Native 动画 Animated 渐变组件的使用 ReactNative 进阶 四十五 渐变组件 react native linear gradient 需要实现如下的动
  • 【面试】 前端竞争压力大?揭秘让你们学后端的真实动机!

    前端开发属于程序员吗 网友是这样回答的 看完前端同学的评论 我悟了 你们让人都去学后端卷 然后减小前端竞争压力是吧 哈哈哈 你们这帮老6 于是我去拿出了我收藏的 某前端招聘JD来盘一盘 那些觉得 是个人都能干前端 的同学们想必已经熟练掌握了
  • 动手学深度学习3 数据操作+数据预处理

    数据操作 数据预处理 1 基础数据结构 N维数组 2 数据操作实现 基础的张量运算 1 张量 创建与赋值 1 数据生成 创建 torch arange 2 张量的属性 shape numel 3 reshape 改变张量的shape但
  • Python库中关于时间的常见操作

    目录 导入所需的库 获取当前时间 格式化日期和时间 解析日期和时间字符串 时间戳操作 获取当前时间戳 将时间戳转换为日期和时间 时间差操作 时间日期的时区处理 时间日期的随机生成 注意事项 总结 在Python中 时间处理是一个重要的主题
  • 从three.js旋转动画,我了解了requestAnimationFrame

    前言 大家好 我是南木元元 热衷分享有趣实用的文章 希望大家多多支持 一起进步 个人主页 南木元元
  • 48V转12V的DC-DC稳压电路推荐

    项目或学习过程中好用且稳定的DC DC的电路将是一个成功硬件项目的基础 主芯片 MP9486 MP9486A 是一款高压降压型开关稳压器 可输 出高达 1A 的持续电流至负载 它集成了一个高 压高端 MOSFET 提供 3 5A 的典型峰值
  • 2024了,我不允许你还不会:Qt查看与调试源码

    一 人人都是大佬 谦 卑 虚 心 长远进步 作为一个Qt的开发者 下面这段代码你已经快到了 相看两不厌 的状态了吧 你有没有好奇过 a exec 到底干了什么 我不允许你再说 这是 Qt 内部干的事情 没办法去看啊 那么 真的没办法去看么
  • 软考考试多少分通过?

    根据 人力资源社会保障部办公厅关于单独划定部分专业技术人员职业资格考试合格标准有关事项的通知 人社厅发 2022 25号 的相关规定 软考考试在一般情况下是需要达到45分才能及格的 但在一些特定地区却有不同的要求 这些地区包括国家乡村振兴重
  • 个性化语音生成:五种基于Python的方法

    引言 随着人工智能技术的不断发展 语音生成已经成为一个热门的研究领域 个性化语音生成技术可以根据用户的需求和特点 生成具有高度相似度的语音 广泛应用于语音助手 虚拟人物 语音合成等领域 本文将介绍五种基于Python的个性化语音生成方法 包
  • vue3 父传参到子(defineProps),父调子方法(defineExpose)

    父页面
  • Element-Puls中el-upload组件结合vue-draggable-plus实现上传支持拖拽排序(并保留el-upload原有样式、预览、删除)等功能

    展示效果 需求 需求想要一个可拖拽排序的图片列表 但是发现el upload虽然可以实现照片墙 但是没办法拖拽 实现思路 使用 vue draggable plus 拖拽插件 隐藏Upload原有的已上传文件列表 自定义上传后文件列表的样式
  • 软件开发和网络安全哪个更好找工作?

    为什么今年应届毕业生找工作这么难 有时间去看看张雪峰今年为什么这么火就明白了 这么多年人才供给和需求错配的问题 在经济下行的今年 集中爆发 供给端 大学生越来越多 需求端 低端工作大家不愿去 高端岗位又太少 很多基础行业 比如机械 土木 所
  • 拼多多详情API开启运营比价新纪元

    随着互联网的快速发展 电商行业正在迅速崛起 拼多多作为一家新兴的电商平台 凭借其独特的营销策略和创新的商业模式 成为了电商行业的一匹黑马 在拼多多的成功背后 其详情API接口营销起到了至关重要的作用 本文将详细介绍拼多多详情API接口营销的
  • 如何读取文件的最后一行并解析

    首先需要了解 ifstream 的 seekg函数 它主要是 用于设置在输入流中的位置 file seekg 0 ios end ios beg 从文件头开始计算偏移量 ios end 从文件末尾开始计算偏移量 ios cur 从当前位置开
  • 线上企业展厅:企业发展新利器,轻松实现线上企业展示

    引言 在当今数字化时代 线上企业展厅已经成为企业展示品牌形象 推广产品的重要手段 它不仅可以帮助企业拓宽市场 提升品牌知名度 还能为企业带来更多的商业机会 那么线上企业展厅有什么优势 如何搭建成功的线上企业展厅 一 线上企业展厅的优势 1
  • 【镜像压缩】linux 上 SD/TF 卡镜像文件压缩到实际大小的简单方法(树莓派、nvidia jetson)

    文章目录 1 备份 SD TF 卡为镜像文件 2 压缩镜像文件 2 1 多分区镜像文件的压缩 树莓派 普通 linux 系统等 2 2 单分区镜像文件的压缩 Nvidia Jetson Nano 等 3 还原镜像文件到 SD TF 卡
  • MIT_线性代数笔记:复习二

    目录 第二单元主要内容 例题 第二单元主要内容 正交矩阵 Q 用矩阵形式描述正交性质 投影矩阵 P 最小二乘法 在方程无解时求 最优解 Gram Schmidt 正交化 从任意一组基得到标准正交基 策略是从向量 中减去投影到其它向量方向的分
  • Linux 软件安装以及管理

    本篇主要记录常用的软件安装和管理方式 主要是 yum rpm dnf apt pip 大致都是一样的 主要是部分软件提供了解决依赖的功能 内容不包括源码安装 源码安装情况相对比较复杂 后续有时间再补充 约定 案例所用模板软件均为 pytho