Linux系统软件包的管理
一、 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包没有硬件平台限制。
挂载光驱
[[email protected] ~]# mount /dev/cdrom /mnt/ mount: block device /dev/sr0 is write-protected, mounting read-only
write-protected:写保护
1、安装一个包
[[email protected] mnt]# rpm -ivh /mnt/Packages/libjpeg-turbo-devel-1.2.1-1.el6.i686.rpm
-i: 表示安装
-v :可视化
-h:显示安装进度
--force : 强制安装,即使覆盖属于其他包的文件也要安装
--nodeps : 当要安装的rpm包依赖其他包时,即使其他包没有安装,也要安装这个包
[[email protected] mnt]# rpm -ivh --nodeps /mnt/Packages/libjpeg-turbo-devel-1.2.1-1.el6.i686.rpm Preparing... ########################################### [100%] 1:libjpeg-turbo-devel ########################################### [100%]
升级:rpm -Uvh filename.rpm
-U 就是升级的意思
[[email protected] mnt]# echo $? 0
检查上一步安装是否正确,如果正确显示数字0,如果不正确显示其他的数字
2、rpm的卸载:
rpm -e filename #这里的filename是通过rpm的查询功能所查询到的
查询包名
[[email protected] mnt]# rpm -qa |grep libj libjpeg-turbo-1.2.1-3.el6_5.x86_64 libjpeg-turbo-devel-1.2.1-1.el6.i686
这里libj并不是包名的全称,只是大概记得,类似于模糊搜索的功能,这样已查询就可以把所有
以libj开头的包全部显示出来,然后找到自己需要的那一个来卸载
卸载包
[[email protected] mnt]# rpm -e libjpeg-turbo-devel
查询一个包是否安装
rpm -q 包名 (不带有平台信息以及后缀名 )
[[email protected] mnt]# rpm -q libjpeg-turbo-devel package libjpeg-turbo-devel is not installed
查询当前系统所有安装过的rpm包
rpm -qa
[[email protected] mnt]# rpm -qa wdaemon-0.17-5.el6.x86_64 gnome-python2-bonobo-2.28.0-3.el6.x86_64 .........省略掉,太多了
查询rpm包的相关信息 :
rpm -qi 包名
[[email protected] mnt]# rpm -qi libjpeg-turbo-devel Name : libjpeg-turbo-devel Relocations: (not relocatable) Version : 1.2.1 Vendor: CentOS Release : 1.el6 Build Date: 2013年02月22日 星期五 06时49分08秒 Install Date: 2015年03月29日 星期日 21时23分29秒 Build Host: c6b9.bsys.dev.centos.org Group : Development/Libraries Source RPM: libjpeg-turbo-1.2.1-1.el6.src.rpm Size : 321085 License: wxWidgets Signature : RSA/SHA1, 2013年02月24日 星期日 01时53分55秒, Key ID 0946fca2c105b9de Packager : CentOS BuildSystem <http://bugs.centos.org> URL : http://sourceforge.net/projects/libjpeg-turbo Summary : Headers for the libjpeg-turbo library Description : This package contains header files necessary for developing programs which will manipulate JPEG files using the libjpeg-turbo library.
列出一个rpm所安装的文件:
rpm -ql 包名(好像不写版本号也是可以的)
[[email protected] mnt]# rpm -ql libjpeg-turbo-devel /usr/include/jconfig.h /usr/include/jerror.h /usr/include/jmorecfg.h /usr/include/jpeglib.h /usr/lib/libjpeg.so /usr/share/doc/libjpeg-turbo-devel-1.2.1 /usr/share/doc/libjpeg-turbo-devel-1.2.1/coderules.txt /usr/share/doc/libjpeg-turbo-devel-1.2.1/example.c /usr/share/doc/libjpeg-turbo-devel-1.2.1/jconfig.txt /usr/share/doc/libjpeg-turbo-devel-1.2.1/libjpeg.txt /usr/share/doc/libjpeg-turbo-devel-1.2.1/structure.txt
查询某个文件属于哪个rpm包安装的
rpm -qf filename #这里可以结合反引号一起使用,比如 rpm -qf `which yum`
filename这里有两种写法:
第一种:
使用which yum得出yum的绝对路径
[[email protected] mnt]# which yum /usr/bin/yum [[email protected] mnt]# rpm -qf /usr/bin/yum yum-3.2.29-60.el6.centos.noarch
第二种:
直接使用反引号一步得出接过来
[[email protected] mnt]# rpm -qf `which yum` yum-3.2.29-60.el6.centos.noarch
反引号的作用表示就是把引号中命令的结果放在那个位置
二、 yum工具
列出所有可用rpm包资源
yum list
[[email protected] ~]# yum list
搜索某个包
yum search [关键词]
[[email protected] ~]# yum search vim
使用grep来过滤某个包
yum list |grep ‘关键词‘
[[email protected] ~]# yum list |grep ‘vim‘ vim-common.x86_64 2:7.2.411-1.8.el6 @base vim-enhanced.x86_64 2:7.2.411-1.8.el6 @base vim-minimal.x86_64 2:7.2.411-1.8.el6 @anaconda-CentOS-201311272149.x86_64/6.5 vim-X11.x86_64 2:7.2.411-1.8.el6 base
@:表示的是已经安装过的包
yum 安装包
yum install -y filename(包名)
[[email protected] ~]# yum -y install vim
-y:省略掉和用户的交换,也就是问你是否要安装或者卸载
yum 卸载包:
yum remove -y filename (包名)
[[email protected] ~]# yum remove -y vim
卸载包的时候一定要注意,最好不要使用-y,以防把其他有用的包卸载了,还不知道
yum升级包:
yum update -y filename(包名)
[[email protected] ~]# yum update -y vim
yum查找某个命令是由那个包安装的
yum provides "*/vim"
[[email protected] ~]# yum provides ‘*/vim‘
列出所有的套件
yum grouplist
[[email protected] ~]# yum grouplist
安装套件
yum groupinstall
卸载套件
yum groupremove
三、创建本地的yum源
yum配置文件目录:/etc/yum.reos.d
1、挂载光盘
[[email protected] ~]# mount /dev/cdrom /mnt
2、修在yum配置文件,但是在修在之前先备份一下/etc/yum.repos.d这个目录
[[email protected] ~]# cp -r /etc/yum.repos.d/ /etc/yum.repos.d_back
-r:备份目录的参数
3、删除/etc/yum.repos.d目录下的所有文件
[[email protected] yum.repos.d]# rm -rf *
4、使用vim编辑一个dvd.reo文件
需要注意的是.repo是固定的格式不能更改。
[[email protected] yum.repos.d]# vim dvd.repo #加入如下内容: [dvd] #yum源的名字,可以随意起 name=install dvd #yum源的描述信息 baseurl=file:///mnt#光盘所在的挂载目录,也就是光盘的路径 enabled=1 #这里指的是yum源的开始或者关闭,1表示开始,0表示关闭 gpgcheck=0 #不进行gpg检测
退出保存
看是否有dvd的标志出现
yum list
[[email protected] yum.repos.d]# yum list |tail yum-presto.noarch 0.6.2-1.el6 dvd yum-updateonboot.noarch 1.1.30-14.el6 dvd yum-utils.noarch 1.1.30-14.el6 dvd zip.x86_64 3.0-1.el6 dvd zlib.i686 1.2.3-29.el6 dvd zlib-devel.i686 1.2.3-29.el6 dvd zlib-devel.x86_64 1.2.3-29.el6 dvd zlib-static.x86_64 1.2.3-29.el6 dvd zsh.x86_64 4.3.10-7.el6 dvd zsh-html.x86_64 4.3.10-7.el6 dvd
安装yum扩展源
[[email protected] yum.repos.d]# rpm -ivf http://www.lishiming.net/data/attachment/forum/epel-release-6-8_32.noarch.rpm
其他地址http://www.aminglinux.com/bbs/thread-6721-1-1.html)
四、利用yum下载一个rpm包
1、安装一个插件来支持只下载不安装
搜索插件
[[email protected] ~]# yum list |grep downloadonly
安装插件
[[email protected] ~]# yum install -y yum-plugin-downloadonly.noarch 1.1.30-14.el6
下载一个rpm包而不安装
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
五、 源码包安装
源码包是开源的可自行更改的程序包,大多用C语音开发,不能直接使用,需要编译成二进制的可执行文件
编译源码包的必须有gcc支持,如果没有需要安装 yum install -y gcc
通常情况编译三步曲: ./configure 配置各种编译参数; make 根据指定的编译参数进行编译;make install 安装到指定目录
实例:
1、下载源码包到指定的目录
cd /usr/local/src/
2、安装wget,如果已经安装了,可以略过这一步
[[email protected] src]# yum instrall -y wget
3、下载apache这个包
[[email protected] src]# wget http://mirrors.cnnic.cn/apache/httpd/httpd-2.2.27.tar.bz2
4、解压
[[email protected] src]# tar -jxvf httpd-2.2.27.tar.bz2
5、安装gcc编译器
[[email protected] httpd-2.2.27]# yum install -y gcc
指定编译参数 ./configure --help
6、配置相关选项,并生成Makefile
[[email protected] httpd-2.2.27]# ./configure --prefix=/usr/local/apache2
--prefix=:后面是指定软件包的安装位置
验证是否成功
[[email protected] httpd-2.2.27]# echo $? 0
7、编译
[[email protected] httpd-2.2.27]# make
验证是否成功
[[email protected] httpd-2.2.27]# echo $? 0
8、安装
[[email protected] httpd-2.2.27]# make install
9、检查是否安装成功
[[email protected] httpd-2.2.27]# ls /usr/local/apache2/ bin cgi-bin error icons lib man modules build conf htdocs include logs manual
小白学习笔记,不足之处还请大神指正
博客地址:http://www.aminglinux.com/bbs/thread-7688-1-1.html