Linux 软件管理(yum, apt/apt-get, dpkg/rpm)

news/2024/12/19 21:24:21/文章来源:https://www.cnblogs.com/librarookie/p/18617956

yum

操作 命令
更新源 sudo yum clean all && sudo yum makecache
安装包 sudo yum install <package_name>[-<version>]
升级包 sudo yum upgrade <package_name>
升级所有: sudo yum update
卸载包 sudo yum remove <package_name>
降级包 sudo yum downgrade <package_name>-<version>
查找包 yum search <package_name>
已安装 yum list installed [<package_name>]
可用版本 yum list <package_name> --showduplicates
锁定版本 sudo yum versionlock add <package_name>[-version]
解锁锁定 sudo yum versionlock delete <package_name>
清空锁定 sudo yum versionlock clear
查看锁定 yum versionlock list

tip: 锁定版本需要自己安装 sudo yum install yum-plugin-versionlock


apt/apt-get

操作 命令
编辑源 sudo apt edit-sources [<source_name>]
更新源 sudo apt/apt-get update
安装包 sudo apt/apt-get install <package_name>[=<version>]
升级包 sudo apt/apt-get upgrade <package_name>
卸载包 sudo apt/apt-get remove <package_name>
清除包 sudo apt/apt-get purge <package_name>
已安装 apt list [<package_name>] -i/--installed
查找包 apt/apt-cache search <package_name> --names-only
安装细节 apt/apt-cache show <package_name>
修复依赖 sudo apt-get -f install
卸载依赖 sudo apt-get autoremove
历史版本 apt-cache policy <package_name>
可用版本 apt list <package_name> -a/--all-versions
apt-cache madison <package_name>
锁定版本 sudo apt-mark hold <package_name>
解锁锁定 sudo apt-mark unhold <package_name>
查看锁定 apt-mark showhold

dpkg/rpm

操作 dpkg rpm
安装 sudo dpkg -i <deb_name> [--force-depends] sudo rpm -ivh <rpm_name>
升级 sudo rpm -Uvh <rpm_name>
卸载 sudo dpkg -r <deb_name> sudo rpm -e [--nodeps] <rpm_name>
清除 sudo dpkg -P/--purge <deb_name>
查找 dpkg -l <deb_name>
sudo dpkg-query -W "chrome"
rpm -qa <rpm_name>
包信息 dpkg -s <deb_name> rpm -qi <rpm_name>
包内容 dpkg -L <deb_name> rpm -ql <rpm_name>
查包名 dpkg -S <file_name> rpm -qf <file_name>

源码编译安装

以 nginx 安装为例:

  1. 准备源代码包

    #从项目的官方网站或代码仓库(如 GitHub)下载源代码
    wget https://nginx.org/download/nginx-1.24.0.tar.gz     #下载
    tar -xzvf nginx-1.24.0.tar.gz       #解压
    cd nginx-1.24.0
    
  2. 准备编译环境

    #安装编译工具和依赖,比如 gcc(GNU 编译器集合)和 make。
    sudo yum install pcre-devel zlib-devel # 安装 nginx 依赖包
    
  3. 安装(3步曲)

    #配置构建环境
    ./configure --prefix=/usr/local/nginx  #--prefix指定了Nginx的安装目录,其他的配置项按需添加make    #编译sudo make install    #安装
    
  4. 验证

    #启动验证
    /usr/local/nginx/sbin/nginx
    /usr/local/nginx/sbin/nginx -version
    
  5. 卸载

    sudo rm -rf /usr/local/nginx# make uninstall(部分软件支持)
    

    note:因为没有使用包管理器安装,所以需要手动删除安装的文件。如果你在配置时指定了 --prefix,只需删除该目录即可。


结论

  • 方便性:“apt-get机制”最优,“dpkg机制”次之,“从源码编译安装机制”最末。“apt-get机制”已经预先解决依赖问题,“从源码编译安装机制”需要我们自己解决依赖问题
  • 可定制性:“从源码编译安装机制”最优,“dpkg机制”次之,“apt-get机制”最末。“从源码编译安装机制”允许我们自定义安装参数,“apt-get机制”几乎完全采用默认的安装参数
  • 所需权限:“从源码编译安装机制”所需权限可以是最小,“dpkg机制”次之,“apt-get机制”所需权限最大。在我们不拥有较高权限(比如root权限)的情况下,只能采用“从源码编译安装机制”


Via

  • http://c.biancheng.net/view/2952.html
  • https://rqsir.github.io/2019/04/13/linux-make-install的安装与卸载/
  • https://blog.csdn.net/liudsl/article/details/79200134

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/855595.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

组合数学+ybt题解

加法原理 乘法原理 排列数 从 \(n\) 个数中任取 \(m\) 个元素的排列的方案数,表示为 \(A^m_n=\frac{n!}{(n-m)!}\) \(0!=1\) 全排列 \(A^n_n\) 组合数 从 \(n\) 个元素中取出 \(m\) 个元素的组合的个数,表示为 \(\dbinom{n}{m}= \frac{A^m_n}{m!}=\frac{n!}{m!(n-m)!}\) 如何…

苍穹外卖day02

JWT令牌、ThreadLocal、分页查询bug记录知识点记录新增员工新增员工需要填写创建人id和修改人id两个属性,这两个属性应该填本账户的id。 通过拦截器可以解析出JWT令牌中包含的登录员工id信息,但是该如何传递给Service的save方法? ThreadLocal并非一个Thread,而是Thread的局…

年底裁员开始了,大家做好准备吧!

各大互联网公司的接连裁员,政策限制的行业接连消失,让今年的求职雪上加霜,想躺平却没有资本,还有人说软件测试岗位饱和了,对此很多求职者深信不疑,因为投出去的简历回复的越来越少了。 另一面企业招人真的变得容易了吗?有企业HR吐槽,简历确实比以前多了好几倍,其实是变…

2024-2025-1 20241401 《计算机基础与程序设计》 第十三周学习总结

班级链接 2024计算机基础与程序设计作业要求 第十三周作业教材学习内容总结 《C语言程序设计》第12章结构体的定义和使用: 结构体类型的定义,以及结构体变量的创建和使用。结构体允许将不同数据类型的成员组合成一个整体,以便于管理和引用。 结构体变量的初始化: 结构体变量…

golang的互斥锁和读写锁

golang mutex(互斥锁) 1.锁最本质的作用 保证原子性 2.mutex 使用原则 适用于并发编程,尽量减少加锁区域的逻辑 3.mutex的局限性 仅限于单个进程内操作 sema(信号量,semaphore的简称)是一种用于并发控制的机制 资源计数:信号量维护一个资源计数。这个计数表示当前可用的资源数…

「测试人员」年终总结及来年规划

年底一般企业都会针对项目写总结,一般流程是组员呈交给组长,组长递交给测试经理,所以每个层级写各自的总结,会有不同的侧重点。 今天分别来聊聊测试工程师、测试组长以及测试经理年终总结的关注点在什么地方以及采用什么样的方法及策略使年终总结有实际意义且高大上。📝 …

【硬件测试】基于FPGA的2FSK调制解调系统开发与硬件片内测试,包含信道模块,误码统计模块,可设置SNR

1.算法仿真效果 本文是之前写的文章基于FPGA的2FSK调制解调系统,包含testbench,高斯信道模块,误码率统计模块,可以设置不同SNR_fpga 2fsk-CSDN博客的硬件测试版本。在系统在仿真版本基础上增加了ila在线数据采集模块,vio在线SNR设置模块,数据源模块。硬件ila测试结果如下:(…

征程 6 云端 Ota 升级方案设计与实现

01 引言 在开发、调测过程中,经常通过 Ota 技术升级应用软件、底软。目前,项目上已将 Matrix6 的 Demo 部署在实车上,每次软件、底软需要版本更替或版本升级时,都需要研发测试同学上到车上使用工控机进行手动升级。 这流程存在耗费人力多,花费时间长,流程易出错的问题,并…

vxe-table 树表格新增数据,插入指定节点位置操作

vxe-table 新增数据,插入指定节点位置操作 官网:https://vxetable.cn npm install vxe-pc-ui@4.3.37 vxe-table@4.9.31// ... import VxeUI from vxe-pc-ui import vxe-pc-ui/lib/style.css import VxeUITable from vxe-table import vxe-table/lib/style.css // ...createAp…

less5

1.在URL处输入 ?id=1 ?id=1 ?id=1" ?id=1/1发现回显只有you are in......和报错 报错:判断回显是布尔类型 使用order by发现回显有三栏 ?id=1 order by 4%23 ?id=1 order by 1%23 ?id=1 order by 3%23判断数据库长度:8位 ?id=1 and length((select database()))&g…

Java-递归查询部门下所有子部门(包括本部门)

Java-递归查询部门下所有子部门(包括本部门),会得到一个部门id的集合:List deptIds具体代码如下: //递归1public List<Long> queryAllSubInstitutionIds(Long institutionId) {List<Long> subInstitutionIds = new ArrayList<>();querySubInstitutionIds…