码迷,mamicode.com
首页 > 系统相关 > 详细

linux程序包管理

时间:2015-09-01 00:07:15      阅读:394      评论:0      收藏:0      [点我收藏+]

标签:linux程序   源代码   开源软件   操作系统   软件包   


  在Linux系统下通常使用的软件管理机制有源代码的形式、以及RPM(redhat Package Manager)包管理机制,在此文中,我们将讲解这两种软件管理机制。

RPM软件包管理

RPM(redhat Package Manager)是为了方便软件管理使用所开发的一套开源软件格式,它的设计目标有以下几个:

①使用简单  通过 rpm 命令就可以完成rpm软件的安装

②以单一软件包格式发布(.rpm文件)  我们可以看到rpm软件包都只有一个以.rpm的文件(rpm软件包管理机制要求软件包必须以.rpm结尾)

③可升级rpm软件包是可以升级的,比如说我下载好了一个新版本的rpm软件,我们只需要通过 rpm -u 命令即可升级

④追踪依赖关系  rpm软件包管理机制可以追踪软件之间的依赖关系,这样在安装时就会非常的方便

⑤保存软件基本信息

⑥软件验证功能

⑦支持多平台,支持多平台并不是说一个rpm软件可以在多个操作系统平台上运行,而是说该软件会针对多个平台发布不同的rpm软件包


RPM的基础命令:

rpm -q 包名  查询指定的包是否安装

rpm-qa 查询已经安装的所有的包

rpm -qa | grep  
[root@localhost Packages]# rpm -qa | grep "^z"
zd1211-firmware-1.4-4.el6.noarch
zlib-1.2.3-27.el6.x86_64
zsh-4.3.10-5.el6.x86_64

rpm -qi 包名:查询指定包的信息

[root@localhost Packages]# rpm -qi zsh

rpm -ql 包名  查询指定包安装后生成的文件列表

[root@localhost Packages]# rpm -ql zsh

rpm -qf  /path/to/somefile:查询的指定文件由那个rpm包安装的

[root@localhost Packages]# rpm -qf /bin/ls
coreutils-8.4-19.el6.x86_64



rpm -qc 包名  查询指定文件安装的配置文件

rpm -qd 包名 查询指定文件安装的帮助文件

rpm -q --scripts 包名 查询指定包安装的脚本


未安装的包的查询:

rpm -qpi 包全名

[root@localhost Packages]# rpm -qpi zip-3.0-1.el6.x86_64.rpm
 rpm -qpl

升级:rpm -Uvh  

   --oldpackage:降级

卸载 rpm -e 

校验rpm -V 包名

rpm -K 验证包的完整性


YUM源和仓库:

YUM的特点主要有以下几点:

①自动解决依赖性问题

②可以对RPM进行分组,并基于组来进行安装操作

③引入了仓库的概念,支持多个仓库

这个仓库既可以是本地的,也可以是互联网上的,可以通过http、ftp或者nfs等形式使用集中的、统一的网络仓库


仓库搭建:

服务器IP:192.168.1.112

[root@antrol ~]# yum install httpd
            service iptables  stop
            service  httpd start
            ckhconfig httpd  on

在Appache根目录下建立文件夹yum及其子文件夹CentOS,将光盘内CentOS文件夹下的所有内容拷贝到/var/www/html/yum/CentOS目录下 

mkdir -p /var/www/html/yum
mkdir -p /var/www/html/yum/CentOS
cp -prf /media/CentOS/* /var/www/html/yum/CentOS/

安装createrepo

rpm -ivh createrepo.........  创建Yum仓库(有依赖关系)

[root@centos6 Centos]# rm -rf repodata  #先删除元数据
[root@centos6 Centos] # createrepo /var/www/html/yum/CentOS/   #把此目录制作成yum源,时间有点长
Spawning worker 0 with 4184 pkgs
Workers Finished
Gathering worker results
Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete

[root@centos6 Centos]# ls     
CentOS_BuildTag  isolinux                  RPM-GPG-KEY-CentOS-Debug-6
EFI              Packages                  RPM-GPG-KEY-CentOS-Security-6
EULA             RELEASE-NOTES-en-US.html  RPM-GPG-KEY-CentOS-Testing-6
GPL              repodata                  TRANS.TBL
images           RPM-GPG-KEY-CentOS-6.bak
#repodata会自动生成

配置客户端yum 客户端ip:192.168.1.113

[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# ls   
CentOS-Base.repo.bak   CentOS-fasttrack.repo  centos.repo
CentOS-Debuginfo.repo  CentOS-Media.repo      CentOS-Vault.repo
#先将CentOS-Base.repo 备份成CentOS-Base.repo.bak
#编辑centos.repo
[yangbb]
 name=Base Repo on 172.16.0.1
 baseurl=http://192.168.1.112/yum/Centos  # 源路径(http://   ftp://   file:///  内网或者外网地址都可以)
 gpgcheck=1     #是否验证
 gpgkey=http://mirrors.ustc.edu.cn/centos/RPM-GPG-KEY-CentOS-6  #验证地址,可以是仓库或者internet地址
[root@localhost ~]# yum -y install babl
Loaded plugins: fastestmirror, refresh-packagekit, security
Setting up Install Process
Loading mirror speeds from cached hostfile
Resolving Dependencies
--> Running transaction check
---> Package babl.x86_64 0:0.1.2-4.el6 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
===========================================================================================
 Package           Arch                Version                   Repository           Size
===========================================================================================
Installing:
 babl              x86_64              0.1.2-4.el6               yangbb               83 k
Transaction Summary
=========================================================================================
Install       1 Package(s)
Total download size: 83 k
Installed size: 256 k
Downloading Packages:
babl-0.1.2-4.el6.x86_64.rpm                                         |  83 kB     00:00     
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Installing : babl-0.1.2-4.el6.x86_64                                                 1/1 
Verifying  : babl-0.1.2-4.el6.x86_64                                                 1/1

至此,yum源和仓库可以正常使用


yum的命令

 repolist:列出所有可用的yum repo

 clean all:清除所有缓存

 list:列出rpm包

 nfo 包名:查看包的信息

 grouplist:列出包组

 groupinfo “包组名称”:显示包组信息

 install package ... :安装软件包 -y

 reinstall package name:重新安装指定的程序包

 ckeck-update:检查升级

 update package:升级指定的程序包

 erase/remove:卸载软件包(包括依赖包)

 whatprovides|provides /path/to/somefile:查询包是谁提供的

 downgrade package:降级

 groupinstall "包组” :安装包组

 install 包名  --nogpgcheck:手动禁止检查源及完整性


源码安装的两个优势:

1、软件根据用户的需要加以定制;

2、二次开发;注:要根据软件的许可证书约定为准,开发者许可二次开发才行;

安装步骤:

#./configure 

#make

#make install


以安装http2.2为例:

[root@centos6 ~]# service httpd stop  #关闭自动的http
[root@centos6 ~]# tar xf httpd-2.2.13.tar.bz2 
[root@centos6 ~]# cd httpd-2.2.13
[root@centos6 ~]# /configure --prefix=/usr/local/apache 
[root@centos6 ~]# make && make install
[root@centos6 ~]# vim /etc/profile.d/apache.sh 
PATH=$PATH:/usr/local/apache/bin
export PATH

[root@centos6 httpd-2.2.13]# ln -sv /usr/local/apache/include /usr/include/http  #给头文件创建软连接

库文件输出:

[root@centos6 ld.so.conf.d]# cd /etc/ld.so.conf.d/
[root@centos6 ld.so.conf.d]# vim httpd.conf 
在文件内输入:/usr/local/apache/lib
[root@centos6 ld.so.conf.d]# ldconfig -v | grep -v "[[:space:]]"
/usr/local/apache/lib:
/usr/lib64/mysql:
/usr/lib64/qt-3.3/lib:
/usr/lib64/xulrunner:
/lib:
/lib64:
/usr/lib:
/usr/lib64:



linux程序包管理

标签:linux程序   源代码   开源软件   操作系统   软件包   

原文地址:http://yangbb.blog.51cto.com/10649397/1690266

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!