1. 软件包管理简介
2. RPM包管理-rpm命令管理
2.1 包命名与依赖性
2.2 安装升级与卸载
2.3 查询
2.4 校验和文件提取
3. RPM包管理-yum在线管理
4. 源码包管理
4.1 源码包和RPM包的区别
4.2 源码包安装过程
5. 脚本包管理
源码包:可以看到源代码,但是安装时间较慢,脚本安装包类似Windows安装软件, 他是写了安装界面的源码包
优点:
缺点:
二进制包:RPM包,系统默认包,厂商已经进行了编译,看不到源代码,但是安装时间较快
优点:
缺点:
RPM包命名规则
例子:Httpd-2.2.15.el6.centos.1.i686.rpm
注意
RPM包依赖性
树形依赖:a→b→c
环形依赖:a→b→c→a:环形依赖需要把a,b,c三个同时安装
模块依赖:被依赖文件以.so.[数字]结尾的为库依赖,需要直接安装这个软件所在的软件包,安装这个包时需要进入网站 www.rpmfind.net.
包全名:操作的包是没有安装的软件包时,而且要注意路径。(安装、省级)
包 名:操作以及安装的软件包时,是默认在搜索/var/lib/rpm中的数据库。(查询、卸载)
RPM安装
rpm -ivh 包全名
-i 安装(install)
-v 显示详细安装信息(verbose)
-h 显示进度(hash)
–nodeps 不检测依赖性 一般不用,安装时都得显示依赖性
注意:安装一定要用包全名
RPM包升级
rpm -Uvh 包全名
-U 升级(upgrade) Linux严格控制大小写
-v 显示详细安装信息(verbose)
-h 显示进度(hash)
–nodeps 不检测依赖性 一般不用,安装时都得显示依赖性
RPM包卸载
rpm -e 包名
-e 卸载(erase)
–nodeps 不检查依赖性
RPM包查询
rpm -q 包名 查询是否安装
-q 查询(query)
-a 所有(all)
rpm -qa 查询所有安装的包
rpm -qa | grep [关键字] 查询所有含义关键字的包
rpm -qi 包名 查询安装过软件包详细信息
-i 查询软件信息(information)
-p 查询未安装包信息(package)
rpm -qip 包全名 查询没安装过软件包详细信息 因为包没有安装所以得加包全名,因为包在生产好的时候他的信息就已经生成,所以可以查到没安装好的包的信息
rpm -ql 包名 查询包中文件安装位置
-l 列表(list)
-p 查询未安装包信息(package)
rpm -qf 系统文件名 查询系统文件属于哪个RPM包
-f 查询系统文件属于哪个软件包(file)
rpm -qR 包名 查询软件包的依赖性
-R 查询软件包的依赖性(requires)
-p 查询未安装包信息(package)
安装升级包全名,其他用包名
RPM包校验
rpm -V 已安装的包名 RPM包
-V 校验指定RPM包中的文件(verify)
例子:
rpm -V httpd 显示:
S.5……T. c /etc/httpd/conf/heepd.conf
验证内容中的8个信息的具体内容:
S:文件大小是否改变
M:文件的类型或文件的权限(rwx)是否被改变
5:文件MD5校验和是否改变(可以看成文件内容是否改变) MD5是进行文件完整性验证的
D:设备的中,从代码是否改变
L:文件路径是否改变
U:文件的属主(所有者)是否改变
G:文件的属组是否改变
T:文件的修改时间是否改变
文件类型:
c:配置文件(config file)
d:普通文档(documentation)
g:“鬼”文件(ghost file),很少见,就是该文件不应该被这个RPM包包含
l:授权文件(license file)
r:描述文件(read me)
RPM包文件提取(修复)
rpm2cpio 包全名 | cpio -idv.文件绝对路径
rpm2cpio 将rpm包转换为cpio格式的命令
cpio 是一个标准工具,他用于创建软件档案文件和从档案文件中提取文件
yum软件管理命令
1. yum list 查询所有可用软件包列表
2. yum search [关键字(包名)] 搜索服务器上所有和关键字相关的包
3. yum -y install [包名] 安装软件包 -y 自动回答yes
4. yum -y update [包名] 升级软件包 -y 自动回答yes
注意:yum -y update 后必须加包名,否则就是全盘更新,包括Linux内核也会更新,Linux内核在更新完成之后需要在本地进行配置,内核才可以启动,如果你是在服务器上跑这条命令,服务器直接崩溃,永远无法连接,再也不能启动!!!
5. yum -y remove 包名 卸载包 -y 自动回答yes
注意:yum -y remove卸载会把包所有的依赖包都会卸载,有时候会把系统文件也同时卸载,小心使用,尽量不要多用!!!
Linux 服务器安装软件包原则:
最小化安装,不安装多余软件,使用什么软件安装什么软件,手工装,尽量不卸载,尤其yum卸载尽量不要用!!!
yum软件组管理命令
yum grouplist 列出所有可用的软件组列表
yum groupinstall “软件组名” 安装指定软件组,组名可以由grouplist查询出来,如果组名之间有空格,用双引号扩起来
yum groupmove 软件组名 卸载指定软件组
安装之前的区别:概念上的区别
安装之后的区别:安装位置不同
RPM包默认安装路径(绝大部分软件文件安装位置)
/etc 安装文件安装目录
/usr/bin/ 可执行的命令安装目录
/usr/lib 程序所使用的函数库保存位置
/usr/share/doc/ 基本的软件使用手册保存位置
/usr/share/man 帮助文件保存位置源码包安装位置:
安装在指定位置当中,一般是 /usr/local/软件名/
安装位置不同带来的影响
RPM包安装的服务可以使用系统服务管理命令(service)来管理,例如RPM包安装的Apache的启方法是:/etc/rc.d/init.d./httpd start,service httpd start (红帽系列专有命令),RPM包的启动文件全在/etc/rc.d/init.d./里,servic会搜索RPM包所有的安装路径,所以service才能
启动RPM包软件,但是启动不了源码包软件,因为源码包在/usr/local里,和RPM包不一样,源码包启动使用绝对路径加start
这里举例(安装Apache)说明一下:
1.安装准备
安装C语言编译器
下载源码包
http://mirror.bit.edu.cn/apache/httpd/
2.注意事项
源码包保存位置:/usr/local/src
软件安装位置:/usr/local
然后确定安装过程报错:安装过程停止,并出现error,warning或者no提示,即发生错误
把电脑本机下载好的源码包传输到Linux系统或者服务器上
Windows下载WinSCP软件进行本机与虚拟机或者远程传输
Mac连接远程阿里云服务器,终端使用命令 scp进行传输:
3.解压下载到源码包
使用命令 tar -jxvf httpd-2.4.43.tar.bz2
如果是tar.gz压缩包可以使用 tar -zxvf 命令
4.进入解压缩目录
输入命令:cd httpd-2.4.43
INSTALL:安装说明
README:使用说明
进入安装说明:vi INSTALL
$ ./configure --prefix=PREFIX 编译前准备
$ make 进行编译
$ make install 编译安装
$ PREFIX/bin/apachectl star 启动命令
这些为详细的安装步骤,其中:
./configure为软件配置与检查 我们也称编译前准备
1.定义需要的功能选项。
2.检测系统环境是否符合安装要求
3.把定义好的功能选项和检测系统环境的信息都写入Makefile文件,用于后续的编辑。
4.定义安装路径
输入命令:./configure --prefix=/usr/local/apache2
5.编译:
输入命令:make 进行编译
不会在指定位置安装任何东西 make clean 报错即可清空
6.完成编译:
输入命令:make install 编译安装
7.启动:
输入命令:/usr/local/apache2/bin/apachectl start
$ PREFIX/bin/apachectl star中 $ PREFIX为软件安装路径
源码包直接删除目录即可删除干净
一般访问量很大的软件需要更适合本OS,会选择源码安装
生产环境不会同时安装源码包和RPM包
脚本包:脚本安装包并不是独立的软件包类型,是一种源码包,是人为把安装过程写成了自动安装的脚步,只要执行脚本,定义简单的参数,就可以完成安装,非常类似于Windows下软件的安装方式。(常见于驱动包)比如安装Webmin 网页系统用户管理,图形化工具管理
安装程序以.sh结尾 下一步点回车,再输入的时候如果想删除字符按ctrl+退格键