linux学习之-linux软件包管理
2016-05-29 22:32
453 查看
linux程序包管理(rpm、yum、及源码编译安装)
首先源码程序命名规范ame-version.tar.{gz|bz2|xz} ,如nginx-1.11.0.tar.gz,其中:nginx为程序名称,主版本号(major)为1.次版本号(minor)为11.发行号(release)为0。
rpm版本号命名规范name-version-release.arch.rpm,如:httpd-2.4.6-17.el7.x86_64,其中httpd为程序名,2.4.6版本号,17为发行号(release),el7(Redhat Enterprise linux 7),x86_64为平台架构(noarch,通用平台软件)。
软件包管理所需功能,打包、安装、查询、升级、卸载、校验、数据管理。
软件包如果很大,有很多功能,比如有10个功能,在很多时候常用的只有6个功能,则需要对包进行分解,即主包和支包(不是很确切),那么我们就可以选择性的安装,避免浪费系统资源,如:
httpd.x86_64 主包
httpd-tools.x86_64 支包
httpd-devel.x86_64 支包
httpd-manual.noarch 支包
一、rpm (Red Hat Package Manager)软件包安装管理器:
1,安装时常用options -i |--install 安装应用程序,-V | --verify验证程序包,-h|--hash 以#显示安装进度, -ivh --replacepkgs 重新安装,同时原来的配置文件不会被删除(但在生产环境请注意备份),新的配置文件以.confnew生成。
2,移除RPM包或卸载软件,常用options -e |erase 清除软件。
3,测试安装常用options --test 测试安装。
4,在安装过程中有些软件包安装需要依赖其他软件包,如果忽略其他依赖关系使用 --nodeps 选项
5,在升级软件时需要使用 -U | --upgrade(升级或安装软件) 或 -F |--freshen (只能升级使用),如果在升级过程中报错可使用--force强行升级。
6,查询软件包的信息,使用-q (query),-qa 显示所有与之匹配的安装包,如查询 httpd是否被安装,则使用rpm -qa http* 或rpm -qa | grep “^http*”
7,查询软件包信息可以使用 -qi ,如:
[root@localhost ~]# rpm -qi httpd
Name : httpd 名称
Version : 2.4.6 版本号
Release : 17.el7 次版本号
Architecture: x86_64 平台架构
Install Date: Sun 29 May 2016 07:59:36 AM EDT 安装时间
Group : System Environment/Daemons
Size : 3863865
License : ASL 2.0
Signature : RSA/SHA256, Tue 01 Apr 2014 01:54:28 PM EDT, Key ID 199e2f91fd431d51 数字签名
Source RPM : httpd-2.4.6-17.el7.src.rpm RMP源码包
Build Date : Thu 20 Mar 2014 07:17:12 AM EDT 编译日期
Build Host : x86-024.build.eng.bos.redhat.com 编译主机名
Relocations : (not relocatable)
Packager : Red Hat, Inc. <http://bugzilla.redhat.com/bugzilla> 打包人
Vendor : Red Hat, Inc.
URL : http://httpd.apache.org/
Summary : Apache HTTP Server
Description :
The Apache HTTP Server is a powerful, efficient, and extensible
web server
8,由文件查询由哪个安装包生成的使用options -f 如:rpm -qf /etc/yum.conf ,同时使用-l 可以查询软件包所有生成的目录,如:rpm -ql httpd。
9,在实际的生成环境中,不要安装来路不明的软件包,如果觉得哪个软件包被修改过,可使用-V来查看校验的信息,如果无返回信息则没有被修改,如果有返回信息,格式如下:rpm -V package_Name , S file Size differs 大小, M Mode differs (includes permissions and file type) 头文件,5 digest (formerly MD5 sum) differs MD5,D
Device major/minor number mismatch ,L readLink(2) path mismatch, U User ownership differs 属主, G Group ownership differs 属组,T mTime differs 修改时间, P caPabilities differ 能力改变了。
10,rpm数据库,主要记录了很多信息,数据库位置在/var/lib/rpm/* ,如果数据出现损坏,有以下两个 optios -initdb (如果没有则初始化一个数据库),-rebuilddb(重建现有数据),如下图:
![](https://img-blog.csdn.net/20160529235552431?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
11,导入公钥验证文件:--import /path/to/gpg-key-file,验证-K ,--checksig,--nosigeature:不检查来源合法性,--nodigest:不检查包完整性。
二、yum 软件包管理
yum(Yellow dog Updater, Modified),主要是是解决软件包在安装过程中出现的依赖关系。
yum的主配置文件是/etc/yum.conf,yum仓库的配置文件在/etc/yum.repo.d/*所有以*.repo的文件。
yum配置文件的格式如下:
[repo_id]
name=string
baseurl=仓库访问路径(http:// | ftp:// | file:// )
enable=[0,1]1表示启用,0表示不启用。
gpgcheck=[0,1]1表示启用,0表示不启用。
gpgkey=公钥地址,(也可以是本地key文件,服务器路径)
cost=1000(默认)仓库开销,主要是多个repo仓库时优先选择值越小的仓库
yum常用命令如下:
repolist 仓库列表,{all | enabled | disabled} 默认列出启用的的仓库。
list 列出yum软件包{ all | installed(已安装的) |available(可用的) }
grouplist 列出所有软件包组
clean 清理缓存{all 清理所有信息| packages(清理包)|metadata(清理元数据)|expire-cahce(清理过期缓存)|rpmdb(清理rpm数据)|plugins}
install 安装软件包-y(安装过程中使用yes),如安装httpd:yum install httpd -y
reinstall 重新安装包,check-update检查包更新,update 更新软件,downgrade降级软件,erase |remove 删除软件,history 查看yum命令历史纪录
groupinstall 安装包组 -y (安装过程中使用yes)如安装图形界面:yum groupinstall “Server with GUI” -y
info 查看包信息,如查看python-dateutil包信息 yum info python-dateutil
--nogpgcheck 手动禁止检查包的完整性,whatprovides |provides 查看报提供者信息
三、yum仓库创建。
服务端配置:首先要搭建FTP或http文件服务器,将包放在文件服务器上,使用createrepo + 软件包所在路径,在文件服务器上创建yum仓库repodata,启动httpd服务。
客户端配置,参照《yum配置文件的格式》进行配置,测试yum
repolist | list 是否能够发现软包列表。
四、程序包之编译安装。
首先下载程序源代码,一般以name-version-tar.[gz|
xz|bz2],用tar xf filename 解压,cd到解压目录执行 ./configure (可先使用--help或查看安装文档),之后使用make命令进行编译,使用make install 进行安装。
configure 通用参数,--prefix=安装路径
--sysconfigdir=配置文件路径,制定启用或禁用某些特性,--enable-feature 如:--enable-fpm --disable-feature如:--disable-socket,指定某些依赖的工程、程序、文件,--with-function --without-function
二进制程序访问方法,创建/etc/profile.d/filename.sh ,编辑filename.sh,增加 :
PATH=二进制程序路径:$PATH
export PATH
保存后退出,并重新读取环境变量, source /etc/profile.d/filename.sh
。
二进制lib库调用路径增加,创建 /etc/ld.so.conf.d/filename.so
,编辑filename.so 增加软件lib库绝对路径,使用ldconfig 重新生成库文件软件路径。
二进制程序头文件调用,ln -sv /软件绝对路径/include
/usr/include/filename
添加man文档,编辑/etc/man.conf 添加 “ MAN 软件文档绝对路径” ,保存退出即可。
首先源码程序命名规范ame-version.tar.{gz|bz2|xz} ,如nginx-1.11.0.tar.gz,其中:nginx为程序名称,主版本号(major)为1.次版本号(minor)为11.发行号(release)为0。
rpm版本号命名规范name-version-release.arch.rpm,如:httpd-2.4.6-17.el7.x86_64,其中httpd为程序名,2.4.6版本号,17为发行号(release),el7(Redhat Enterprise linux 7),x86_64为平台架构(noarch,通用平台软件)。
软件包管理所需功能,打包、安装、查询、升级、卸载、校验、数据管理。
软件包如果很大,有很多功能,比如有10个功能,在很多时候常用的只有6个功能,则需要对包进行分解,即主包和支包(不是很确切),那么我们就可以选择性的安装,避免浪费系统资源,如:
httpd.x86_64 主包
httpd-tools.x86_64 支包
httpd-devel.x86_64 支包
httpd-manual.noarch 支包
一、rpm (Red Hat Package Manager)软件包安装管理器:
1,安装时常用options -i |--install 安装应用程序,-V | --verify验证程序包,-h|--hash 以#显示安装进度, -ivh --replacepkgs 重新安装,同时原来的配置文件不会被删除(但在生产环境请注意备份),新的配置文件以.confnew生成。
2,移除RPM包或卸载软件,常用options -e |erase 清除软件。
3,测试安装常用options --test 测试安装。
4,在安装过程中有些软件包安装需要依赖其他软件包,如果忽略其他依赖关系使用 --nodeps 选项
5,在升级软件时需要使用 -U | --upgrade(升级或安装软件) 或 -F |--freshen (只能升级使用),如果在升级过程中报错可使用--force强行升级。
6,查询软件包的信息,使用-q (query),-qa 显示所有与之匹配的安装包,如查询 httpd是否被安装,则使用rpm -qa http* 或rpm -qa | grep “^http*”
7,查询软件包信息可以使用 -qi ,如:
[root@localhost ~]# rpm -qi httpd
Name : httpd 名称
Version : 2.4.6 版本号
Release : 17.el7 次版本号
Architecture: x86_64 平台架构
Install Date: Sun 29 May 2016 07:59:36 AM EDT 安装时间
Group : System Environment/Daemons
Size : 3863865
License : ASL 2.0
Signature : RSA/SHA256, Tue 01 Apr 2014 01:54:28 PM EDT, Key ID 199e2f91fd431d51 数字签名
Source RPM : httpd-2.4.6-17.el7.src.rpm RMP源码包
Build Date : Thu 20 Mar 2014 07:17:12 AM EDT 编译日期
Build Host : x86-024.build.eng.bos.redhat.com 编译主机名
Relocations : (not relocatable)
Packager : Red Hat, Inc. <http://bugzilla.redhat.com/bugzilla> 打包人
Vendor : Red Hat, Inc.
URL : http://httpd.apache.org/
Summary : Apache HTTP Server
Description :
The Apache HTTP Server is a powerful, efficient, and extensible
web server
8,由文件查询由哪个安装包生成的使用options -f 如:rpm -qf /etc/yum.conf ,同时使用-l 可以查询软件包所有生成的目录,如:rpm -ql httpd。
9,在实际的生成环境中,不要安装来路不明的软件包,如果觉得哪个软件包被修改过,可使用-V来查看校验的信息,如果无返回信息则没有被修改,如果有返回信息,格式如下:rpm -V package_Name , S file Size differs 大小, M Mode differs (includes permissions and file type) 头文件,5 digest (formerly MD5 sum) differs MD5,D
Device major/minor number mismatch ,L readLink(2) path mismatch, U User ownership differs 属主, G Group ownership differs 属组,T mTime differs 修改时间, P caPabilities differ 能力改变了。
10,rpm数据库,主要记录了很多信息,数据库位置在/var/lib/rpm/* ,如果数据出现损坏,有以下两个 optios -initdb (如果没有则初始化一个数据库),-rebuilddb(重建现有数据),如下图:
11,导入公钥验证文件:--import /path/to/gpg-key-file,验证-K ,--checksig,--nosigeature:不检查来源合法性,--nodigest:不检查包完整性。
二、yum 软件包管理
yum(Yellow dog Updater, Modified),主要是是解决软件包在安装过程中出现的依赖关系。
yum的主配置文件是/etc/yum.conf,yum仓库的配置文件在/etc/yum.repo.d/*所有以*.repo的文件。
yum配置文件的格式如下:
[repo_id]
name=string
baseurl=仓库访问路径(http:// | ftp:// | file:// )
enable=[0,1]1表示启用,0表示不启用。
gpgcheck=[0,1]1表示启用,0表示不启用。
gpgkey=公钥地址,(也可以是本地key文件,服务器路径)
cost=1000(默认)仓库开销,主要是多个repo仓库时优先选择值越小的仓库
yum常用命令如下:
repolist 仓库列表,{all | enabled | disabled} 默认列出启用的的仓库。
list 列出yum软件包{ all | installed(已安装的) |available(可用的) }
grouplist 列出所有软件包组
clean 清理缓存{all 清理所有信息| packages(清理包)|metadata(清理元数据)|expire-cahce(清理过期缓存)|rpmdb(清理rpm数据)|plugins}
install 安装软件包-y(安装过程中使用yes),如安装httpd:yum install httpd -y
reinstall 重新安装包,check-update检查包更新,update 更新软件,downgrade降级软件,erase |remove 删除软件,history 查看yum命令历史纪录
groupinstall 安装包组 -y (安装过程中使用yes)如安装图形界面:yum groupinstall “Server with GUI” -y
info 查看包信息,如查看python-dateutil包信息 yum info python-dateutil
--nogpgcheck 手动禁止检查包的完整性,whatprovides |provides 查看报提供者信息
三、yum仓库创建。
服务端配置:首先要搭建FTP或http文件服务器,将包放在文件服务器上,使用createrepo + 软件包所在路径,在文件服务器上创建yum仓库repodata,启动httpd服务。
客户端配置,参照《yum配置文件的格式》进行配置,测试yum
repolist | list 是否能够发现软包列表。
四、程序包之编译安装。
首先下载程序源代码,一般以name-version-tar.[gz|
xz|bz2],用tar xf filename 解压,cd到解压目录执行 ./configure (可先使用--help或查看安装文档),之后使用make命令进行编译,使用make install 进行安装。
configure 通用参数,--prefix=安装路径
--sysconfigdir=配置文件路径,制定启用或禁用某些特性,--enable-feature 如:--enable-fpm --disable-feature如:--disable-socket,指定某些依赖的工程、程序、文件,--with-function --without-function
二进制程序访问方法,创建/etc/profile.d/filename.sh ,编辑filename.sh,增加 :
PATH=二进制程序路径:$PATH
export PATH
保存后退出,并重新读取环境变量, source /etc/profile.d/filename.sh
。
二进制lib库调用路径增加,创建 /etc/ld.so.conf.d/filename.so
,编辑filename.so 增加软件lib库绝对路径,使用ldconfig 重新生成库文件软件路径。
二进制程序头文件调用,ln -sv /软件绝对路径/include
/usr/include/filename
添加man文档,编辑/etc/man.conf 添加 “ MAN 软件文档绝对路径” ,保存退出即可。
相关文章推荐
- Linux系统设置静态IP地址
- LINUX6.5 + MYSQL5.6 + JIRA6.3 + CONFLUENCE5.9
- Centos6.7_KVM安装配置使用
- Linux 端口防火墙
- Linux 中查看文件第n行内容的命令
- Linux学习笔记之一:文件目录管理
- linux测试文件是否存在命令集合
- linux 进程管理
- Archlinux下virtualbox报错'/sbin/rcvboxdrv setup'
- KaLi Linux Rolling 2016 学习笔记
- VirtualBox 安装 Centos 7 笔记
- vim、g++、gdb及makefile的学习
- Linux centos通过安装lszrz用CRT实现与Windows互相传文件
- 线程-Pthread 笔记
- 守护进程-解析
- 标准I/O库 笔记
- Linux中文件的查找whereis、locate、find
- Linux下vim的配置
- 根文件系统制作
- 建立目标板Linux系统