rpm/yum/编译
RPM篇:
RPM是RedHat Package Manager(RedHat软件包管理工具)其作用相当于Windows里面的“添加/删除程序。
RPM包的一般格式为:
name-version-arch.rpm
name-version-arch.src.rpm
name:软件包名称。
version:带有主、次和修订的软件包版本。
arch:硬件平台。硬件平台包括了:i386、i486、i586、i686、x86_64、ppc、sparc、alpha
src.rpm:源代码包。
例如: python-psutil-1.2.1-1.el7.x86_64.rpm
python-psutil:是软件名称。
1.2.1-1:是软件版本。
e17:表示这个软件包的发行商版本。
x86_64:是适用的硬件平台。
另外还有有些包中有如下字符表示:
devel:表示这个RPM包是软件的开发包,例如mysql-devel-5.1.52-1.el6_0.1.i686.rpm。
noarch:说明这样的软件包可以在任何平台上安装,不需要特定的硬件平台。在任何硬件平台上都可以运行
RPM包配置文件以及二进制程序关联包的查看
查看二进制程序所依赖的库文件:
ldd /bin/ls:列ls命令所需要的所有库以及调用:查看二进制程序所依赖的库文件;
管理以及查看本机装载的库文件:
ldconfig
/sbin/ldconfig -p:显示本机已经缓存的所有可用库文件以及名称文件路径的映射关系:
配置文件为:/etc/ld.so.conf.d/,/etc/ld.so.conf.d/*.conf
缓存文件: /etc/ld.so.cache
RPM包的安装、升级、删除以及查询:
1,安装:
rpm {-i|--install} [install-options]PACKAGE_FILE ..
如:rpm -ivh --replacepkgs zsh-5.0.2-7.el7.x86_64.rpm --nodigest --nosignature
其中: -ivh:表示安装并显示安装进度等详细信息;
--replacepkgs:重新安装;替换原有的程序包
--nodigest不检查包完整性
--nosignature:不检查包来源合法性
安装常用参数选项:
--test:测试安装,不真正执行安装过程:dry run模式:
--nodeps:忽略依赖关系:
--replacepkgs:重新安装;替换原有的程序包
--nodigest不检查包完整性
--nosignature:不检查包来源合法性
2,升级:
rpm {-U|--upgrade}[install-options] PACKAGE_FILE ...
rpm {-F|--freshen} [install-options]PACKAGE_FILE ...
upgrage:安装有旧版程序包,则升级;如果不存在旧版,则安装;
fresshen:安装有旧版程序包,则升级;如果不存在旧版,则不执行升级操作;
常用参数选项:
--oldpackage:由新版本降级为旧版本
--force:强制升级;
如:rpm -Uvh--oldpackage python-psutil-1.1.1.el6.x86_64.rpm
3,删除:
rpm {-e|--erase} 包名
如:rpm -e zsh
4,查询:
rpm {-q|--query} [select-options] [query-options]
RPM安装前查询:
查看的前提是您有一个.rpm 的文件,也就是说对既有软件file.rpm的查看;
1)查看一个软件包的用途、版本等信息;
rpm -qpifile.rpm
2)查看一件软件包所包含的文件;
rpm -qplfile.rpm
3)查看软件包的文档所在的位置;
rpm -qpdfile.rpm
4)查看一个软件包的配置文件;
rpm -qpcfile.rpm
5)查看一个软件包的依赖关系
rpm-qpR file.rpm
RPM在系统安装后的查询:
1)查询系统已安装的软件;
rpm -q 包名
rpm –qa:查看系统所有的RPM包,可用配合grep选取自己需要的查询或rpm –qa|less
2)查询一个已经安装的二进制文件属于哪个软件包
rpm -qf 文件名 如:rpm –qf /usr/bin/ls
3) 查询已安装软件包都安装到何处
rpm -ql 包名 如:rpm –ql zsh
4) 查询一个已安装软件包的信息
rpm -qi 包名 如:rpm –qi zsh
5) 查看一下已安装软件的配置文件;
rpm –qc 包名
6) 查看一个已经安装软件的文档安装位置:
rpm -qd 包名
7) 查看一下已安装软件所依赖的软件包及文件;
rpm-qR 包名
RPM包的签名导入:
rpm --import RPM-GPG-KEY
RPM包的校验:
rpm {-V|--verify} [select-options][verify-options]
如:rpm -V zsh
RPM数据库重建:
rpm数据库存储在: /var/lib/tpm/下:
rpm{--initdb|--rebuilddb}
initdb:初始化:存在就不进行操作,没有就新建
rebuilddb:重建
无论存在与否,直接重新创建数据库
YUM篇:
RPM虽然能管理安装包,但是无法自动解决安装过程中包的依赖关系。因此我们一般使用RPM管理工具YUM来安装和管理RPM包;
yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器。基於RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。yum提供了查找、安装、删除某一个、一组甚至全部软件包的命令。
yum的命令形式一般是如下:
yum [options] [command] [package ...]
[options]是可选的,
-h:帮助
-y:当安装过程提示选择全部为"yes"
-q:不显示安装的过程
[command]为所要进行的操作
[package ...]是操作的对象。
1 安装
yum install 全部安装
yum install package1 安装指定的安装包package1
yum groupinsall group1 安装程序组group1
2 更新和升级
yum update 全部更新
yum update package1 更新指定程序包package1
yum check-update 检查可更新的程序
yum upgrade package1 升级指定程序包package1
yum groupupdate group1 升级程序组group1
3 查找和显示
yum info package1 显示安装包信息package1
yum list 显示所有已经安装和可以安装的程序包
yum list available:可以还没安装的
yum list updates :可以升级包
yum list installed:已经安装的包
yum list package1 显示指定程序包安装情况package1
yum groupinfo group1 显示程序组group1信息yumsearch string 根据关键字string查找安装包
4 删除程序
yum remove package1; erase package1 删除程序包package1
yum groupremove group1 删除程序组group1
5 清除缓存
yum clean all 清本地除缓存
6.重新安装
yum reinstall package1 package2 ....
7.降级安装
yum downgrade package1 package2 ...
8.显示程序包的依赖关系
如:yum deplist gcc
YUM repository: yum仓库
存储rpm包,以及包的相关的元数据文件(放置在特定目录:repodata);
yum配置文件:
/etc/yum.conf :各yum仓库指向的公共配置:为所有仓库提供公共配置
/etc/yum.repos.d/*.repo:指定多仓库,为仓库的指向提供配置信息
YUM仓库的定义:
[repositoryID]yum仓库名称,为仓库提供公共配置
name=some name for thisrepository
baseurl=url://path1/to/repository
ur2://path1/to/repository
...
enabled={1|0}:是否启用仓库
gpgcheck:是否检查包的完整性和来源合法性
repo_gpgcheck:是否检查仓库的元数据文件的签名信息;
gpgkey=URL:url指向密钥文件
enablegroups={1|0}:是否支持组管理程序包
failovermethod={roundrobin 轮询随机| priority优先级}:故障管理方法;
keepalive:保持连接功能:
username=
password=
cost={1000| } 定义开销数字;
程序包的编译安装:
testapp-VERSION-release.src.rpm :使用rpmbuild命令制作成二进制格式的rpm包,需要编译而后再安装;
在我们进行编译安装的时候需要提前安装编译软件需要的开发环境和开发库:"Development Tools"和”DevelopmentLibraries“;先配置好yum库,然后利用yum库安装
yum –y groupinstall "Development Tools" //安装开发工具
yum groupinstall -y "DevelopmentLibraries" //安装开发库
下面以编译安装apache 2.2; 启动此服务为例说明:
a,获取安装包并解压:apr-1.5.2.tar.gz ,apr-util-1.5.4.tar.gz , httpd-2.2.31.tar.gz , pcre-8.36.tar.gz
b:编译安装
tar -zxf apr-1.5.2.tar.gz
cd cd apr-1.5.2/
./configure--prefix=/usr/local/apr
make
make install
tar -zxf apr-util-1.5.4.tar.gz
cd apr-util-1.5.4/
./configure--prefix=/usr/local/apr-util --with-apr=/usr/local/apr
make
make install
tar -zxf pcre-8.36.tar.gz
cd pcre-8.36/
./configure--prefix=/usr/local/pcre
make
make install
tar -zxf httpd-2.2.31.tar.gz
cd httpd-2.2.31/
./configure--prefix=/usr/local/apache --with-apr=/usr/local/apr--with-apr-util=/usr/local/apr-util --with-pcre=/usr/local/pcre
如果报错可以执行下面一句
./configure--prefix=/usr/local/apache --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util/ap_cv_void_ptr_lt_long=no
make
make install
检查/usr/local/apache 目录中是否已经编译成功。
c:启动测试
/usr/local/apache/bin/apachectlstart
/usr/local/apache/bin/apachectlstop
d:查看 ps -ef | grep httpd
安装完成后配置:
1,导出二进制程序目录至PATH环境变量中;
编辑文件/etc/profile.d/name.sh
exportPATH=/path/to/bin:$path
2,导出库文件路径:
编辑 /etc/ld.so.conf.d/name.conf
添加新的库文件所在目录至此文件中;
让系统重新生成缓存:
ldconfig [-v]
3,导出头文件:
创建链接;
基于链接的方式实现:
ln -sv
4,导出帮助手册
编辑/etc/man.config文件中
添加一个 MANPATH