lesson - 9 Linux系统软件包管理

1. rpm工具
rpm Redhat Package Manager, 设计理念是开放的,不仅仅是在RedHat平台上,在SUSE上也是可以使用的。

rpm包名字构成由-和.分成了若干部分,如abrt-cli-2.0.8-15.el6.centos.i686.rpm,abrt-cli是包名,2.0.8-15是版本号,el6指的是redhat企业版6,centos指的是这是在centos上用的,i686指的是平台类型。有些rpm包并没有写具体的平台而是noarch,这代表这个rpm包没有硬件平台限制。 

安装一个包:rpm -ivh /mnt/Packages/libjpeg-turbo-devel-1.2.1-1.el6.i686.rpm 

-i 表示安装,-v 可视化,-h显示安装进度 
--force : 强制安装,即使覆盖属于其他包的文件也要安装 
--nodeps : 当要安装的rpm包依赖其他包时,即使其他包没有安装,也要安装这个包 
升级:rpm -Uvh filename.rpm
-U 就是升级的意思 

rpm的卸载:
rpm -e filename  //这里的filename是通过rpm的查询功能所查询到的 
rpm -qa |grep libjpeg-turbo-devel
rpm -e libjpeg-turbo-devel 

查询一个包是否安装 
rpm -q  包名   (不带有平台信息以及后缀名 )

查询当前系统所有安装过的rpm包
rpm -qa   

查询rpm包的相关信息 : 
rpm -qi 包名

列出一个rpm所安装的文件: 
rpm -ql      包名

某个文件属于哪个rpm包: 
rpm -qf filename  //这里可以结合反引号一起使用,比如 rpm -qf `which ls`


2. yum工具
yum list 列出所有可用rpm包资源
搜索某个包: yum search  ‘keywords’ or yum list |grep ‘keywords’
yum 安装包: yum install -y  filename(包名)
yum 卸载包: yum remove  -y filename (包名)
yum升级包: yum update -y filename(包名)yum查找包: yum provides  "*/vim"   //这里用通配,可以查找一个命令由哪个包安装来的

yum grouplist  列出所有的套件
yum groupinstall    安装套件
yum groupremove   卸载套件

创建本地的yum源
mount /dev/cdrom /mnt  

cp -r /etc/yum.repos.d  /etc/yum.repos.d.bak    //先备份一下

rm -f /etc/yum.repos.d/*

vim /etc/yum.repos.d/dvd.repo  #加入如下内容:

[dvd]
name=install dvd
baseurl=file:///mnt
enabled=1
gpgcheck=0

yum list  //看是否有dvd的标志出现

安装yum扩展源 rpm -ivh www.lishiming.net/data/attachmen ... e-6-8_32.noarch.rpm   (其他地址http://www.aminglinux.com/bbs/thread-6721-1-1.html)也可以这样安装: yum install -y epel-release

利用yum下载一个rpm包
yum install -y yum-plugin-downloadonly.noarch  #首先需要安装一个插件来支持只下载不安装
yum install 包名 -y --downloadonly   #这样就已经下载,默认在 /var/cache/yum/base/packages/
yum install 包名 -y --downloadonly --downloaddir=/usr/local/src  #指定一个下载目录,如果是已经安装过的rpm包这样不成功,需要使用reinstall: yum reinstall  包名  -y --downloadonly --downloaddir=/usr/local/src


3. 源码包安装
源码包是开源的可自行更改的程序包,大多用C语音开发,不能直接使用,需要编译成二进制的可执行文件
编译源码包的必须有gcc支持,如果没有需要安装 yum install -y gcc
通常情况编译三步曲: ./configure 配置各种编译参数; make 根据指定的编译参数进行编译;make install 安装到指定目录

实例:
下载源码包 cd /usr/local/src/ #约定目录;
wget http://mirrors.cnnic.cn/apache/httpd/httpd-2.2.27.tar.bz2
解压
tar jxvf httpd-2.2.27.tar.bz2  //查看README或者INSTALL说明文件
指定编译参数 ./configure --help  
echo $? 验证是否成功
make
make install



扩展:
1. 使yum保留安装过的包   http://www.360doc.com/content/11/0218/15/4171006_94080041.shtml
2. 使用网易yum源   http://www.aminglinux.com/bbs/thread-7475-1-1.html
3. 搭建局域网yum源  http://www.aminglinux.com/bbs/thread-7627-1-1.html
4. yum源优先级  http://www.aminglinux.com/bbs/thread-7168-1-1.html

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。