在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:
原文地址:http://yangbb.blog.51cto.com/10649397/1690266