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

posted @ 2016-02-18 17:48  Pickle  阅读(431)  评论(0编辑  收藏  举报