Linux系统软件包的管理 3月30日课程

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包没有硬件平台限制。 


挂载光驱

[root@web ~]# mount /dev/cdrom /mnt/
mount: block device /dev/sr0 is write-protected, mounting read-only

write-protected:写保护


1、安装一个包

[root@web mnt]# rpm -ivh /mnt/Packages/libjpeg-turbo-devel-1.2.1-1.el6.i686.rpm

-i: 表示安装

-v :可视化

-h:显示安装进度 

--force : 强制安装,即使覆盖属于其他包的文件也要安装 


--nodeps : 当要安装的rpm包依赖其他包时,即使其他包没有安装,也要安装这个包 

[root@web 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 就是升级的意思 

[root@web mnt]# echo $?
0

检查上一步安装是否正确,如果正确显示数字0,如果不正确显示其他的数字


2、rpm的卸载:

rpm -e filename  #这里的filename是通过rpm的查询功能所查询到的 


查询包名

[root@web 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开头的包全部显示出来,然后找到自己需要的那一个来卸载


卸载包

[root@web mnt]# rpm -e libjpeg-turbo-devel


查询一个包是否安装 

rpm -q  包名   (不带有平台信息以及后缀名 )

[root@web mnt]# rpm -q libjpeg-turbo-devel
package libjpeg-turbo-devel is not installed


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

rpm -qa  

[root@web mnt]# rpm -qa
wdaemon-0.17-5.el6.x86_64
gnome-python2-bonobo-2.28.0-3.el6.x86_64
.........省略掉,太多了


查询rpm包的相关信息 : 

rpm -qi 包名

[root@web 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 包名(好像不写版本号也是可以的)

[root@web 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的绝对路径

[root@web mnt]# which yum
/usr/bin/yum
[root@web mnt]# rpm -qf /usr/bin/yum
yum-3.2.29-60.el6.centos.noarch

第二种:

直接使用反引号一步得出接过来

[root@web mnt]# rpm -qf `which yum`
yum-3.2.29-60.el6.centos.noarch

反引号的作用表示就是把引号中命令的结果放在那个位置

       


二、 yum工具

列出所有可用rpm包资源

yum list 

[root@web ~]# yum list


搜索某个包

yum search [关键词]

[root@web ~]# yum search vim

使用grep来过滤某个包

yum list |grep ‘关键词‘

[root@web ~]# 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(包名)

[root@web ~]# yum -y install vim

-y:省略掉和用户的交换,也就是问你是否要安装或者卸载


yum 卸载包:

yum remove  -y filename (包名)

[root@web ~]# yum remove -y vim

卸载包的时候一定要注意,最好不要使用-y,以防把其他有用的包卸载了,还不知道


yum升级包:

yum update -y filename(包名)

[root@web ~]# yum update -y vim


yum查找某个命令是由那个包安装的

yum provides  "*/vim"  

[root@web ~]# yum provides ‘*/vim‘


列出所有的套件

yum grouplist  

[root@web ~]# yum grouplist

安装套件

yum groupinstall  


卸载套件  

yum groupremove   


三、创建本地的yum源

yum配置文件目录:/etc/yum.reos.d

1、挂载光盘

[root@web ~]# mount /dev/cdrom /mnt


2、修在yum配置文件,但是在修在之前先备份一下/etc/yum.repos.d这个目录

[root@web ~]# cp -r /etc/yum.repos.d/ /etc/yum.repos.d_back

-r:备份目录的参数   


3、删除/etc/yum.repos.d目录下的所有文件

[root@web yum.repos.d]# rm -rf *

4、使用vim编辑一个dvd.reo文件

需要注意的是.repo是固定的格式不能更改。

[root@web 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

[root@web 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扩展源

[root@web 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、安装一个插件来支持只下载不安装

搜索插件

[root@web ~]# yum list |grep downloadonly

安装插件

[root@web ~]# 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,如果已经安装了,可以略过这一步

[root@web src]# yum instrall -y wget

3、下载apache这个包

[root@web src]# wget http://mirrors.cnnic.cn/apache/httpd/httpd-2.2.27.tar.bz2

4、解压

[root@web src]# tar -jxvf httpd-2.2.27.tar.bz2

5、安装gcc编译器

[root@web httpd-2.2.27]# yum install -y gcc


指定编译参数 ./configure --help  


6、配置相关选项,并生成Makefile

[root@web httpd-2.2.27]# ./configure --prefix=/usr/local/apache2

--prefix=:后面是指定软件包的安装位置

验证是否成功

[root@web httpd-2.2.27]# echo $?
0

7、编译

[root@web httpd-2.2.27]# make

验证是否成功

[root@web httpd-2.2.27]# echo $?
0

8、安装

[root@web httpd-2.2.27]# make install

9、检查是否安装成功

[root@web 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

                   

本文出自 “IT交流学习” 博客,请务必保留此出处http://sxct168.blog.51cto.com/824373/1626618

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