程序包管理
包括:内核管理,进程管理,内存管理,网络协议,驱动程序包管理
包管理器:打包,包管理(安装,升级,卸载,查询及校验)
两种包管理 deb ,rpm redhat package manager 包管理
1.1 程序包的组成部分:
二进制程序:/bin,/sbin/,/usr/bin,/usr/sbin
库文件:/lib64,/usr/lib64
配置文件:/etc/
帮组文档:manual,info
1.2 包管理器
打包:一个单一的归档文件
安装,卸载,升级
校验:两个管理,来源的合法性,完整性。
rpm 包的命令机制
包名-主版本号.次版本号.修正次数.压缩扩展名 base-4.3.4.tar.gz
每一个rpm包的名称都由 - 和 . 分成了若干部分。就拿 “abrt-cli-2.0.8-15.el6.centos.i686.rpm” 这个包来解释一下, “abrt-cli” 为包名, “2.0.8” 则为版本信息, “15.el6.centos” 为发布版本号, “i686” 为运行平台。其中运行平台常见的有i386, i586, i686, x86_64 ,需要你注意的是cpu目前是分32位和64位的,i386,i586和i686都为32位平台,x86_64则代表为64位的平台。另外有些rpm包并没有写具体的平台而是noarch,这代表这个rpm包没有硬件平台限制。
1.3 rpm工具
rpm是redhat package manager 的缩写。 rpm是一种数据库记录的方式来将你所需要的套件安装到你的linux主机的一套管理程序。也是说,在你的linux中存在一种数据库的存储机制记录着包与包的依赖关系。安装的时候会很快捷。也有缺点:rpm的预先编译包的环境必须跟安装时的包的编译环境是一致的;卸载包时必须先卸载掉所依赖的包;如果依赖的包是系统所需要的就不能卸载。否则造成系统崩溃。rpm 数据库存放路径:/var/lib/rpm.
1.4 如何获取rpm包:
1:发行版提供的程序包。在光盘中一般在Packages目录中。
2:Fedora-EPEL 高质量软件源。
3:项目的官方站点。,如tomcat,svn官方站点。
4:搜索引擎:http://rpmfind.net
5:centos 识别光盘的设备文件: /dev/cdrom 。
1.5 基于rpm命令实现程序包管理 :
安装:
rpm {i|--install}[install -options] package_file...
-i
-v:显示安装的详细过程。
-h:显示安装的进度。
--nodeps:忽略依赖关系。
--replacepkgs:重装程序包。
--force:强制安装。
由于把光盘文件挂载到了/mnt/目录下挂载命令是 mount /dev/cdrom /mnt/
升级:
rpm {-U| --upgrade}[install - options] package..
-Uvh:如果有旧的程序包,则升级;如果没有则安装。
-Fvh:如果有旧的程序包,则升级;如果没有就不安装。
--nodeps:忽略依赖关系。rpm -ivh 包 --nodeps -一般放在包后面
--oldpackage:降级,降为旧版本。
卸载:
rpm {-e |--erase}[--nodeps][--noscripts][--notriggers][--test]
package_name
查询:rpm {-q|--query}[select-options][query-options]
查询选项
-qa:查询本系统已经安装的所有程序包;
-qf:/path/to/somefile 查询此处生成的文件由那个程序包文件安装生成;
-qc:查询指定程序包安装生成的配置文件。
-qd:查询指定的程序包安装生成的文档;
-qi:查询指定的程序包的先关信息;
-ql:查询程序安装生成的所有文件的列表;
-q --scripts:查询程序包的相关的脚本;
preinstall:安装前的脚本
postinstall:安装后的脚本
preuninstall:卸载前的脚本;
postuninstall:卸载后的脚本;
-p:查询针对是未安装的程序包文件;
包校验
rpm {-V|--verify}[select--options][verfy--options]
来源的合法性验证:非对称加密;完整性验证:单向加密;导入秘钥:rpm --import /path/key_file
YUM工具管理包 yellow updateer modified。
1.1yum安装,主要解决的是包的依赖关系安装,分析包的依赖性,然后将这些记录整成列表放在yum服务端,然后本地软件更新就到表中匹配关系并下载进行安装。
列表信息保存在yum客服端/var/cache/yum中,每次yum启动都会通过校验码与yum 服务端请求同步信息。
1.2yum repositories yum 仓库服务的存储的三种方式
ftp://hostname/path/repo(ftp仓库)
http://hostname/path/repo(网上仓库)
file:///path/repo (本地仓库)
1.3yum配置文件:
/etc/yum.conf:定义全局配置,对所有仓库都适用。
/etc/yum.repos.d/*.repo:一个文件通常用于一个或者一组功能相近或相关的仓库
1.4定义一个仓库的指向:
[repo_id]
name=
baseurl=
#mirrorlist=scheme://hostname/path/....mirror
enabled={1|0}
gpgkey=
cost=
1.5定义仓库指向可用的变量:
$releaserver:引用当前系统的主版本号;
$basearch:当前系统的基本架构;
i386,i486,i586, i686
http://mirrors.magedu.com/CentOS/$releasever/os/$basearch
[base]:代表的是仓库名,name:代表仓库的备注吧。mirrorlist:列出可用使用镜像站点可用备注。
baseurl:仓库指向的镜像网站。enable=1:代表仓库启动,0关闭;gpgcheck=1:是否查阅rpm文件内的数字证书;gpgkey:数字证书公钥所在;cost:代表
1.6yum命令 yum[options[command][package....]
命令:
安装:install
卸载:remove
升级:update
查询:
列出所有要更新的软件清单:yum check-update。
安装所有更新软件 yum update。
仅安装指定软件:yum install packages_name。
仅更新指定的软件 yum update package_name。
查询
search KEYWORD
list all|installed|availiable
provides /PATH/TO/SOMEFILE: 查询指定文件由哪个包安装生成
重新安装:yum reinstall 包 重新安装httpd : yum reinstall httpd -y
降级:downgrade ;yum downgrade httpd -y 降级
清理缓存:clean [ packages | metadata | expire-cache | rpmdb | plugins | all ]
生动生成缓存:makecache。
在rpm安装中需要指定完整的包,在yum只要指定包名即可。
1.7 进行mysql安装
[[email protected] base]# yum install mysql Loaded plugins: fastestmirror, security Loading mirror speeds from cached hostfile * base: mirrors.sina.cn * extras: mirrors.skyshe.cn * updates: mirrors.sina.cn Setting up Install Process Resolving Dependencies --> Running transaction check ---> Package mysql.x86_64 0:5.1.73-5.el6_6 will be installed --> Processing Dependency: mysql-libs = 5.1.73-5.el6_6 for package: mysql-5.1.73-5.el6_6.x86_64 --> Running transaction check ---> Package mysql-libs.x86_64 0:5.1.71-1.el6 will be updated ---> Package mysql-libs.x86_64 0:5.1.73-5.el6_6 will be an update --> Finished Dependency Resolution Dependencies Resolved ==================================================================================================== Package Arch Version Repository Size ==================================================================================================== Installing: mysql x86_64 5.1.73-5.el6_6 base 894 k Updating for dependencies: mysql-libs x86_64 5.1.73-5.el6_6 base 1.2 M
1.8更新mysql包
#卸载mysql [[email protected] base]# yum remove mysql Loaded plugins: fastestmirror, security Setting up Remove Process Resolving Dependencies --> Running transaction check ---> Package mysql.x86_64 0:5.1.73-5.el6_6 will be erased --> Finished Dependency Resolution Dependencies Resolved ==================================================================================================== Package Arch Version Repository Size ==================================================================================================== Removing: mysql x86_64 5.1.73-5.el6_6 @base 2.4 M Transaction Summary ==================================================================================================== Remove 1 Package(s) Installed size: 2.4 M Is this ok [y/N]: y #命令后面加一个 -y 就一切都是确定安装
1.9查询: info search keyword
yum list:列出所有可用安装或者更新的包。
yum list updates 列出资源中可以更新的rpm包。
yum list install 列出可以安装的包。
yum search 搜索匹配特定字符的rpm包。
yum provides /etc/fstab 查看特定文件属于那个包。
[[email protected] ~]# yum search xz 搜索特定的包 Loaded plugins: fastestmirror, security Loading mirror speeds from cached hostfile * base: mirror.bit.edu.cn * extras: mirrors.skyshe.cn * updates: centos.ustc.edu.cn ============================================== N/S Matched: xz =============================================== xz.x86_64 : LZMA compression utilities xz-devel.i686 : Devel libraries & headers for liblzma xz-devel.x86_64 : Devel libraries & headers for liblzma xz-libs.x86_64 : Libraries for decoding LZMA compression xz-libs.i686 : Libraries for decoding LZMA compression xz-lzma-compat.x86_64 : Older LZMA format compatibility binaries Name and summary matches only, use "search all" for everything.
2.1包组:
grouplist
groupinfo "GRP_NAME"
groupinstall "GRP_NAME"
groupremove "GRP_NAME"
2.2仓库:
repolist [all|enabled|disabled]
repoinfo [all|enabled|disabled]
2.2创建一个本地光盘仓库
1:第一挂载光盘到某个文件夹
mount /dev/cdrom /mnt/
2:在/etc/yum.repos.d/创建一个扩展名为repo的文件,并进行仓库的属性编辑
[cdrom-test] name=centos-cdrom-repo baseurl=file:///mnt/ 光盘挂载的位置 enable=1 启动仓库 gpgcheck=1 gpgkey=file:///mnt/RPM-GPG-KEY-Centos-6 查阅文件证书,在挂载目录下的GPG-KEY下。
3:编写完仓库属性文件后 清除一下仓库缓存文件
yum clean all
4:yum repolist all 显示所有的仓库文件
2.3 创建一个阿里云仓库
在/etc/yum.repos.d/ 创建阿里云仓库 然后清除缓存
转载于:https://blog.51cto.com/shunzi5160/1695167