您的位置:首页 > 运维架构 > Linux

Linux基础自学记录七-软件包管理

2012-04-06 11:59 393 查看
 
二进制软件包管理(RPM、YUM);源代码包安装;脚本安装(Shell或Java脚本);Debian系包管理
一、RPM包管理
例:/mnt/cdrom/CentOS/sudo-1.7.2p1-5.el5.i386.rpm;其中软件名sudo、版本号1.7.2p1、发行号5.el5和硬件平台i386。硬件平台一般有x86、ppc(powerpc)、alpha;#cat /proc/cpuinfo可查看cpu family:6。



RedHat系Linux默认几乎所有的系统文件都是通过光盘RPM安装。
1、卸载软件包:rpm -e 软件名,-e(erase)若无依赖包会直接卸载,若有依赖包的文件可用--nodeps强行卸载(不建议,因为卸载了主软件,其它依赖此软件的配置程序将无用处)。



2、安装软件包:rpm -ivh 软件包名(-i就可以了)-i(install)-v(view)-h(hash#号标记)



一般光盘里/Centos目录包含大量RPM包,可用grep查找,再用rpm -rvh安装。



3、查看软件包是否已安装:rpm -q 软件名,如rpm –q sudo;当不确定软件的名称时,可用rpm -qa | grep yum,查看跟yum相关的所有软件包(a为all)。



4、其它安装选项
--excludedocs不安装软件包中的文档文件;
--prefix PATH将软件包安装到指定目录(用处不大,一般rpm安装包都按linux文件系统固定了安装目录);
--test测试安装包,一般测试包的依赖关系;
--replacepkgs当安装提示软件包已安装,又确定要对某个包覆盖安装时;
--replacefiles当出现包中文件与其它已装包发生冲突时,可替换冲突文件安装,较少见;
--nodeps很多软件包都要在安装其依赖的包后才能安装,可强制安装,但可能安装后用不了;
-Uvh可以对软件进行版本升级。
5、用yum进行安装:能自动解决依赖关系;方便升级,一般可用官方安装升级。
yum install 软件名;yum check-update 软件名(对常用的软件建议经常到官方升级,以防漏洞);yum update 软件名;yum list 查询yum源软件包文件列表;yum info;yum remove卸载;yum -help;man yum。
利用官方yum源安装升级较慢,其实可以很简单地更改yum源,方法如下:在/etc/yum.repos.d目录下存放着yum源的配置文件,



其中Centos-Media.repo是利用光驱做为本地源,描述中有只使用光驱配置文件的方法, 注意enabled=1。


 
通过命令可以对比yum源的使用情况:



使用yum --disablerepo=\* --enablerepo=c5-media



为了看得清楚,将Centos-Media.repo文件中的gpgcheck=1改为0,如下显示:


 
这样安装光盘里的软件会非常快。
6、RPM包管理
查询选项:
-a——all查询所有已安装的软件包
-f——file查询文件所属的软件包
-p——package查询软件包
-i——information显示软件包信息
-l——list显示软件包中所有文件
-d——document显示文档文件
-c——configure显示配置文件
查询文件隶属RPM包:
rpm -qf 文件名
rpm -qf /etc/inittab
查询软件包信息:
rpm -qi 软件名 (已安装软件)
rpm -qi sudo
rpm -qip 软件包名  (未安装软件也可查询)
rpm -qip /mnt/cdrom/CentOS/zenity-2.16.0.2.e15.i386.rpm
查询软件包安装文件:
rpm -ql 软件名
rpm -ql sudo  (列出sudo所有文件)
rpm -qlp 软件包名
rpm -qlp 软件包路径  (查看软件包安装之前将要安装的文件)
查看软件包帮助:
rpm -qd 软件名
rpm -qdp 软件包名  (查看软件包帮助文档存放目录)
查看软件包配置文件:
rpm -qc 软件名
rpm -qc httpd
rpm -qc httpd | grep httpd.conf
rpm -qcp 软件包名  (查看软件包配置文件存放目录)
案例:.vimrc注释#出问题查找思路。先搜vim的安装包,再查找相关的示例文件example或sample。这里看到应用"做注释符。



7、校验软件:rpm -V 软件名称  (如果软件文件有任何变动的话会有详细信息列表)
校验文件:rpm -Vf 文件
校验文件时的提示信息(会从系统中生成的rpm库中查找信息):
missing -- 文件丢失
M -- 权限改变 mode
U -- 所有者改变 user
G -- 所属组改变 group
5 -- 文件被改动 md5校验值    md5sum    winmd5
T -- 修改时间更新 time
S -- 文件大小变化 size
L -- 链接文件更新 link
D -- 设备文件变化 device
9、RPM包文件提取rpm2cpio
#rpm -qf /bin/chmod  判断这个命令属于哪个包
coreutils-5.97-23.el5_4.2
提取文件:
rpm2cpio /mnt/cdrom/CentOS/coreutils-5.97-23.el5_4.2.i386.rpm | cpio -idv ./bin/chmod
(rpm2cpio RPM包路径 | cpio -idv 加点提取到当前目录,这里填要提取到的目录)-i 导出 -d 保留目录结构 -v 详细信息
思路:①先确定这个命令所在的rpm包;②再提取这个包到指定目录,完成提取
案例: /etc/inittab误删除恢复
1、进入光盘修复模式  linux rescue
2、修复步骤
a. 恢复硬盘linux目录结构   chroot /mnt/sysimage
b. 查看丢失文件所在RPM包   rpm -qf /etc/inittab
c. 挂载光盘   mount /dev/hdc /mnt/cdrom
/dev/cdrom 软链接,在光盘修复模式中失效,其真实地址为  /dev/htc
ls -l /dev/cdrom
d. 提取恢复文件  rpm2cpio /mnt/cdrom/CentOS/initscripts.... | cpio -idv ./etc/inittab
e. exit 退出chroot状态
    exit 退出光盘修复模式
二、源代码包安装:  (标准安装,所有linux/unix通用)
proftpd-1.3.3d.tar.gz——源代码包示例
1、无关硬件平台
2、定制灵活
缺点:安装慢
①需要先确定编译工具gcc、make已经安装(gcc-c++)
rpm -q make
rpm -q gcc
②Windows软件传到Linux:SSH.Secure.Shell.Client   Quick Connect
启动ftp服务:service vsftpd start
windows命令行模式下:
ftp> bin  切换到二进制传输模式
ftp> put 
1.解压解包 
tar -zxf 源码包路径,再进入源代码包目录
2.配置 
./configure --prefix=/usr/local/proftpd
--prefix=指定安装目录  /usr/local/软件名
搜集系统软硬件信息,生成makefile
3.编译 
make
源代码编译成可执行文件
4.安装 
make install
拷贝、设置权限
rpm/yum只能查询或管理通过RPM包安装的软件
卸载源代码包:
1、关闭服务
2、直接删除安装目录   rm -rf /usr/local/proftpd
非标准的源代码包:
示例:webmin
①解压解包
②它没有configure这个文件,查看源代码包目录下 README、INSTALL,找安装说明
③找到了setu.sh这个安装脚本,运行./setup.sh
webmin  端口号10000
/etc/rc.d/init.d/webmin
/etc/webmin/uninstall.sh
源码包安装是否成功检测:
①指定安装目录有没有文件生成
如:proftpd的目录 /usr/local/proftpd
②运行命令,一般放在bin或者sbin里,root为sbin
如:执行 /usr/local/proftpd/sbin/proftpd
③检索proftpd示例的进程
ps -le | grep proftpd
④终止进程
kill PID数字号
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息