在CentOS或rhel下,软件包的管理方式有三种:
一种是使用rpm安装别人编译好的软件包,一种是使用yum,还有一种是使用编译安装
1、软件包简介
软件包的组成部分:
二进制程序:/bin,/sbin,/usr/bin,/usr/sbin,/usr/local/bin,/usr/local/sbin
库文件:/lib,/usr/lib,/usr/local/lib
配置文件:/etc
帮助文件:手册(/etc/man.config),README,INSTALL(/usr/share/doc/)
软件包管理工具:rmp,dpt
文件清单
文件放置、安装路径
提供的功能说明
依赖关系
安装程序的方式:
通用二进制格式:直接展开就能使用
软件包管理器
软件包管理器的前端工具
源代码编译
rmp:打包、安装、查询、升级、校验、卸载、数据库管理(重建)
编译安装:源代码
编译器:gcc,g++
提供编译环境:开发环境
二进制
库:/etc/ld.so.conf,/etc/ld.so.conf.d/*.conf
帮助手册:/etc/man.config,man -M
文件:/usr/include
源程序的命名:name-version.tar.{gz|bz2|xz}包名-版本号
版本号version:major.minor.release主版本号.次版本号.发行号(修正号)
主版本号通常用于标识重大分支,通常而言,一个程序只有做出重大改变,主版本号才会发生改变次版本号只是部分功能发生改变发行号的目的主要是修复一些bug,调整一些工作属性
bash-4.3.1.tar.xz
rpm包命名:name-version-release.arch.rpm包名-版本号-发行号
发行号release:是这个rpm包的软件包自身的release号,跟程序没有关系; 是用在标识rpm包的制作者第几次制作或第几次修正rpm包的release号; 用于标识rpm包本身的发行号,可还包含所使用的操作系统:el6:rhel6;centos6;el5;suse11
arch:主机平台
i686、x86_64、amd64、ppc、noarch
bash-4.3.2-5.el6.x86_64.rpm
rpm分包:
主包:核心包
分包:支包
bind
bind-devel
bind-chroot
OS:安装程序
RedHat系列官方公钥:
/etc/pki/rpm-gpg/
RPM-GPG-KEY-CentOS-6
2、使用rmp安装软件包
2.1、rpm选项
rpm -i /PATH/TO/RPM_FILE
-i:安装软件
-v,-vv,-vvv:显示详细信息
-h:以#显示安装进度,一个#表示%2的进度
-ivh
-V 包名:校验已安装的软件包
-K(或--checksig):验证合法性
rpm -K zsh-4.3.10-7.el6.x86_64.rpm
--nodeps:忽略依赖关系
--test:测试安装
--replacepkgs:重新安装
-e 包名:卸载
-q|--query 包名:查询
rpm -q zsh
-qa:查询所有已经安装包
rpm -qa | grep "pattern"
-qi 包名:查询包的摘要信息
-ql 包名:查询包安装生成的文件清单
-qc 包名:查询包安装生成的配置文件
-qd 包名:查询包安装生成的帮助文档
-qf /path/to/some_file:查询某文件是由哪个rpm安装生成的
-q --scripts 包名:查询包安装运行相关的脚本
preinstall:安装前脚本
postinstall:安装后脚本
preuninstall:卸载前脚本
postuninstall:卸载后脚本
-qpi /path/to/rpm_file:查询尚未安装的包的相关信息
-qpi
-qpl
-qpc
-qpd
-qp --scripts
-U:升级+安装
-F:升级
-Uvh
-Fvh
--force:强行升级
注意:内核不应该升级,应该尽可能安装,它允许多版本并存
rpm包的数据库:
/var/lib/rpm
重建rpm包数据库:
--initdb:新建(不会覆盖原来的文件)
--rebuilddb:重建(会覆盖原来的文件)
2.2、rpm安装示例
rpm -ivh package_name.rpm
如:本地安装(要有软件包对可以)
# rpm -ivh tree-1.6.0-10.el7.x86_64.rpm
也可从网络安装
rpm -ivh http://mirrors.aliyun.com/centos/6.6/os/x86_64/Packages/tree-1.5.32.el6.x86_64.rpm
缺点不能自己解决软件包依赖关系
3、使用yum安装软件包
3.1、yum简介
源码格式的rpm包:
打包:rpm的包制作过程是根据spec文件来完成的
rpmbuild
yum:RPM前端工具
要想使用好yum,要先配置好yum仓库和
yum repository yum仓库
ftb,http,file
路径:存放了rpm包
createrepo:
.repo
客户端:
yum install|reinstall|remove
/etc/yum.conf
/etc/yum.repos.d/*.repo
section:
[main] []用做仓库定义
[repository_ID]
name=
baseurl=
enableed={1|0}
gpgcheck={1|0}
gpgkey=
gpg:检查rpm签名
[base]
name=CentOS 6.4 x86_64
baseurl=http://192.168.1.20/cobbler/ks_mirror/centos-6.4-x86_64/
enabled=1
gpgcheck=1
yum客户端:
yum SUBCOMMAND:
list {all|installed|available}
repolist [all|enabled|disabled]
info 包名:查看包的摘要信息
yum info zsh
grouplist:查看当前yum源内有多少包组
groupinfo 包组名:查看包组的相关安装包
yum groupinfo "Development tools"
clean [ packages | metadata | expire-cache | rpmdb | plugins | all ]
makecache:创建手动生成缓存
yum install package_name安装包
-y:自动回答为yes
reinstall package_name重新安装包
update 包名升级
update-to 包名 版本号
remove 包名卸载
provides whatprovides查询某文件是由哪个rpm安装生成的
groupinstall组安装
开发组:
RHEL6:"Development tools"、"Server Platform Development"、"Desktop Platform Development"
RHEL5:"Development tools"、"Development Libraries"
groupupdate升级
groupremove移除
localinstall命令:RHEL5用于本地安装rpm包,而不是通过yum源来安装rpm包
HEL6既可以用于本地安装,也可以用于yum源安装
--nogpgcheck:避免检查来源软件包的合法性
history:查看此前安装卸载等操作历史
version
yum仓库的创建:
lftp:
get:单文件下载
mget:多文件下载
mirror:镜像一个目录到本地
bye:退出
cd:切换
pwd:查看当前在什么位置
3.2、安装示例
配置网络yum源
cd /etc/yum.repos.d/ mv CentOS-Base.repo CentOS-Base.repo.bk #防止base.repo中[base]冲突 vim base.repo [base] name=base baseurl=http://mirrors.sohu.com/centos/6.6/os/x86_64/ gpgcheck=1 enabled=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
配置iso光盘yum源
# mkdir /mnt/cdrom # vim /etc/fstab /root/CentOS-6.6-x86_64-bin-DVD1.iso /mnt/cdrom iso9660 loop 0 0 #
# vim base.repo [base] name=base baseurl=http://mirrors.sohu.com/centos/6.6/os/x86_64/ gpgcheck=1 enabled=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6 cost=1000 [cdrom] name=cdrom baseurl=file:///mnt/cdrom gpgcheck=1 enabled=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6 cost=100 # yum clean all #清缓存 # yum makecache #建缓存
安装
# yum grouplist # yum groupinstall "Development tools" # yum install 软件包
3、使用编译安装软件包
autoconf --> configure脚本 + Makefile.in = makefile
automake --> Makefile.in
make install
编译安装步骤:
# cd SOURCE_CODE
# ./configure
检查编译环境是否完备
让用户定制编译配置(通过脚本选项来完成)
--help
--prefix=/usr/local/apache指定默认安装路径
--sysconfdir指定配置文件的存放位置
# make
# make install
库文件搜索路径:/etc/ld.so.conf,/etc/ld.so.conf.d/*.conf
/usr/local/apache/lib
# ldconfig -v:重新搜多当前系统上所有库文件所搜路径下的库文件,并生成缓存/etc/ld.so.cache
/usr/local/apache/conf
/etc/man.config,
MANPATH /usr/local/apache/share/man
头文件:
ln -s
# tar -xvf axel-2.4.tar.gz # cd axel-2.4 # ./configure --prefix=/usr/local/axel # make # make install #安装 # echo ‘PATH=/usr/local/axel/bin:$PATH‘ > /etc/profile.d/axel.sh #axel执行路径 # . /etc/profile #使配置文件生效 # vim /etc/man.config # MANPATH /usr/local/axel/share/man #添加axel的man查找命令
本文出自 “三哥” 博客,请务必保留此出处http://523958392.blog.51cto.com/9871195/1617609
原文地址:http://523958392.blog.51cto.com/9871195/1617609