1, 源代码管理
绝大多数开源软件都是直接以源代码形式发布的, 一般会被打包为 tar.gz 的归档压缩文件. 程序源代码需要编译为二进制可执行文件后才能够运行使用. 源代码的基本编译流程为
./configure: 解压缩后运行该命令, 它主要检查编译环境, 相关库文件以及配置参数并生成 makefile
make: 对源代码进行编译, 生成可执行文件
make install: 将生成的可执行文件安装到计算机中
源代码形式的软件使用起来较为麻烦, 但是兼容性和可控性较好. 并且开源软件一般会大量使用其他开源软件的功能, 所以开源软件会有大量的依赖关系 (使用某软件需要先安装其他软件).
2,RPM 包管理器
在 RPM(Redhat Package Manager, 红帽软件包管理器) 公布之前, 要想在 Linux 系统中安装软件只能采取源码包的方式安装. 早期在 Linux 系统中安装程序是一件非常困难, 耗费耐心的事情, 而且大多数的服务程序仅仅提供源代码, 需要运维人员自行编译代码并解决许多的软件依赖关系, 因此要安装好一个服务程序, 运维人员需要具备丰富知识, 高超的技能, 甚至良好的耐心. 而且在安装, 升级, 卸载服务程序时还要考虑到其他程序, 库的依赖关系, 所以在进行校验, 安装, 卸载, 查询, 升级等管理软件操作时难度都非常大.
RPM 机制是专门为解决这些问题而设计的. RPM 有点像 Windows 系统中的控制面板, 会建立统一的数据库文件, 详细记录软件信息并能够自动分析依赖关系. 目前 RPM 的优势已经被公众所认可, 使用范围也已不局限在红帽系统中了, 下表是一些常用的 RPM 软件包命令.
安装软件的命令格式 | rpm -ivh packagename.rpm |
升级软件的命令格式 | rpm -Uvh packagename.rpm |
卸载软件的命令格式 | rpm -e packagename.rpm |
查询软件描述信息的命令格式 | rpm -qpi packagename.rpm |
列出软件文件信息的命令格式 | rpm -qpl packagename.rpm |
查询文件属于哪个 RPM 的命令格式 | rpm -qf packagename |
查看某一个软件包是否安装 | rpm -qa|grep packagename.rpm |
-i: install 安装
-v: verboes 可视化
-h: hash 显示安装进度
另外的常用的附带参数为:
--force: 强制安装, 即使覆盖其他包的文件也要安装
--nodeps: 当要安装的 rpm 包依赖其他包的时候, 即使其他包没有安装, 也要安装这个包
-U: upgrade 即升级的意思
查询一个包是否安装
rpm -q packagename(这里的包名是不带有平台信息以及后缀名的)
eg:rpm -q alacarte-0.10.0-1.fc6(如果加了平台信息及后缀名 alacarte-0.10.0-1.fc6.noarch.rpm 反而不能查出来)
rpm -qa 查询当前系统上所安装的所有 rpm 包
rpm -qa | grep packagename 查看某个软件包是否安装 (这里的包名是带有平台信息以及后缀名的)
来源: http://www.bubuko.com/infodetail-2704139.html