Linux软件包管理
软件包分类:源代码包 .tar.gz tar.bz2等格式,能够看到所有的源代码,分为脚本安装(专门人员写好的shell脚本,也属于源代码包)、编译安装等;二进制包:RPM包、系统默认包
二进制包缺点是依赖性问题;源代码包都是编译,所以避免的依赖性问题
RPM包命令规则:httpd-2.2.15-15.el6.centos.1.i686.rpm
httpd 软件包名
2.2.15 软件版本
15 发布次数
el6 redhat6系列
centos 适用于centos平台
i686 32位计算机系统,x86_64 64位计算机操作系统
rpm rpm后缀名
centos系统自带的rpm包都在安装光盘下的Packages下,在虚拟机中直接使用mount /dev/sr0 /mnt/cdrom 挂载后即可查看
模块(单个文件)依赖问题解决:
当安装mysql时:rpm -ivh mysql-connector-odbc-5.1.5r1144-7.el6.x86_64.rpm
会提示需要依赖libodbcinst.so.2,而这个模块存在于某个rpm包中
这时候去网站www.rpmfind.net可以查询依赖模块存在于哪个rpm包中,从而安装该依赖包
通过快捷搜索centos,选择相应的版本
rmp包安装:rpm -ivh 包名 根据依赖继续往下安装,需要安装一大堆
rpm依赖分为:树形依赖、环形依赖、库文件依赖
yum是rpm包的在线安装,yum只能安装和卸载包,而查询和校验需要使用rpm命令
rpm包升级命令:rpm -Uvh 包全名 如果没有原始包,那么升级和安装效果一样,如果当前操作版本比已经安装的包版本高,那么就是升级包
所有rpm包安装记录都在:/var/lib/rpm/下的数据库文件中
rpm包卸载:rpm -e 包名(不是包全名),比如:rpm -e httpd
卸载时也需要根据依赖性卸载,必须根据提示卸载错误提示的依赖包
无论安装或者卸载都不要使用:--nodeps (不检查依赖性) 这样会引起很多残留,导致依赖的其他包失效
Linux删除安装包不会产生任何垃圾,只是删除所有的安装文件即可
rpm包查询,比如:rpm -q httpd
查询所有的rpm包:rpm -qa
更常用的是利用管道匹配(包含匹配,查的更全):rpm -qa | grep httpd
查询软件包详细信息:rpm -qi httpd
查询未安装的软件包信息:rpm -qip 包全名 查询包全名必须进入目录当中查询,而且必须输入包全名
查询包的文件释放位置:rpm -ql httpd 可以查看所有文件的列表
查询未知安装包将要安装的位置:rpm -qlp 包全名
根据系统文件名查询属于哪个rpm包:rpm -qf 文件名
查询rpm包依赖的包:rpm -qR httpd 一般情况下直接安装即可,会给出提示(同样可以使用-q)
rpm包校验:rpm -V httpd 测试软件包所有文件信息是否被篡改,包括内容,大小,属性,权限等
检验信息:S 大小修改 M权限修改 5 MD5校验修改,,可以用来判断系统是否被入侵
系统命令丢失后,利用rpm包提取恢复过程:比如ls命令丢失:/bin/ls 通过whereis ls查询
1、查询ls命令属于哪个rpm包:rpm -qf /bin/ls
2、在光盘rpm包目录外执行(比如家目录):
rpm2cpio /mnt/cdrom/Packages/coreutils-8.4-37.el6.x86_64.rpm | cpio -idv ./bin/ls
现在就提取到当前目录下
3、cd ./bin/然后转移文件:cp ls /bin/
然后ls命令就可以用了
yum源文件位置:/etc/yum.repos.d/
默认的源文件是:CentOS-Base.repo
[base] 基本yum源
name 容器说明
mirrorlist 镜像源 url备用站点默认注释
enabled默认为1 生效
gpgcheck 数字证书验证,建议为1,提高安全性
gpgkey 证书位置,计算机默认有,在目录/etc/pki/rpm-pgp/下
搭建光盘yum源:
cd /etc/yum.repos.d/
使本地yum源失效:mv CentOS-Base.repo CenOS-Bask.repo.bak
放入光驱,挂载好光盘:mount /dev/sr0 /mnt/cdrom
vim /etc/yum.repos.d/CentOS-Media.repo
修改baseurl=file:///mnt/cdrom 剩余两行添加注释
修改enabled=1 使光盘yum源生效
然后保存退出
yum list 可以查看所有的yum源软件列表,查看的同时首先更新本地数据库, 后面的yum源位置和我们设置光盘yum源[media]名称一致,说明yum正常生效
yum search 关键字 查看yum源相关包,比如:yum search httpd
yum源安装:yum -y install 包名 (在yum安装中,只有包名,不用包全名;-y是自动回答yes,全自动执行)
yum -y install gcc 安装C语言编译器
软件升级:yum -y update httpd (升级的时候一定要做好准备,比如:关闭指定的服务,重启服务器,平台代码更改等,如果有重大漏洞,建议升级,服务器正常运行过程当中,建议稳定性为先,新服务器搭建前考虑所有环境升级到最新稳定版本)
yum -y update 后面不加软件包,更新所有的软件,包括内核,生产过程中慎用
yum -y remove 包名 卸载指定包
建议服务器初始使用最小化安装,需要什么软件就安装,尽量不卸载,卸载可能使其他软件或者系统依赖丢失,影响稳定性
LANG=en_US 更改语系为英语
LANG=zh_CN.utf8 更改为中文
以上是临时修改
yum grouplist 列出所有可用的软件组列表
yum groupinstall 组名 安装指定的组包
yum groupremove 组名 卸载指定的组包
关于软件查询,要使用rpm -q一系列的命令查询
rpm或者yum安装,一般不要指定安装位置,否则启动或者卸载会出现位置,建议全部默认
源码包安装位置一般位于:/usr/local/软件目录或者/usr/软件目录 需要自己指定
源码包启动一般使用绝对路径加参数启动,或者使用环境变量
源码包卸载直接删除安装目录即可,不会残留任何垃圾文件
服务器软件有大量用户访问,建议手动安装官方源码包,效率更高,性能更好
底层支持软件比如gcc之类的建议使用自带的yum源安装或者rpm包即可
安装源码包报错现象:安装终止或者出现error,no等提示
比如Apache源码包安装:httpd-2.4.18.tar.bz2
tar -jxvf httpd-2.4.18.tar.bz2
cd httpd-2.4.18
软件配置检查,定义功能选项,检测环境是否符合要求,一般情况下必须指定安装位置,目录不需要手工建立:
./configure --prefix=/usr/local/apache
编译:make
如果编译报错,则清除编译的缓存和临时文件,重新开始:make clean
安装:make install 如果这一步报错,需要执行make clean 并且删除目录:rm -rf /usr/local/apache
![](https://images2015.cnblogs.com/blog/735119/201701/735119-20170111112835275-168981902.gif)
![](https://images2015.cnblogs.com/blog/735119/201701/735119-20170111112841431-2047172832.jpg)
![](https://images2015.cnblogs.com/blog/735119/201701/735119-20170111112847494-1544911856.jpg)
![](https://images2015.cnblogs.com/blog/735119/201701/735119-20170111112904385-918783221.jpg)
![](https://images2015.cnblogs.com/blog/735119/201701/735119-20170111120143119-1302805212.jpg)
![](https://images2015.cnblogs.com/blog/735119/201701/735119-20170111112856369-1466718103.jpg)
![](https://images2015.cnblogs.com/blog/735119/201701/735119-20170111112830416-794416355.jpg)
![](https://images2015.cnblogs.com/blog/735119/201701/735119-20170111113919510-1155220901.gif)