1、软件包管理简介
Windows中所有的软件包都不可以直接在linux系统中直接安装使用。
linux系统中软件包分类:
- 源码包(脚本安装包)
-
- 源代码直接开放的包,绝大部分是C语言写的;
-
- 二进包(源码包编译之后的包、RPM包、系统默认包)
-
- 优点:安装快速,简化安装过程但不能看到源代码,例如qq等;
-
redhad系列和ubanto系列最大的区别就是二进制软件包不同,rehad用的二进制包是.rpm包,debin系列用的是deb包,其余的部分两种发行版本基本一致。
源码包的优点:
-
-
- 开源,可以修改源代码
- 功能可以自由的选择
- 源码包是自己的操作系统安装,所以更加快速、稳定、高效,卸载方便(其实linux没有卸载,其实就是把目录删掉,不会遗留任何垃圾文件)
-
源码包的缺点:
-
-
- 安装过程步骤较多
- 容易出现拼写错误
- 编译过程时间较长,同时由于是编译安装,一旦报错,不容易处理
-
RPM包的优点:包管理系统简单,安装速度快;缺点是不可以看源代码,功能选择不如源代码包灵活,依赖性(树形依赖、环形依赖、模块依赖(模块依赖查询网站www.rpmfind.net)
2、rpm命令
- 2.1 如何在虚拟机中利用iso镜像提供rpm包源?
- (1)首先在虚拟机中加入ISO文件
- (2)将光盘ISO进行挂载
- mkdir /mnt/cdrom
- mount /dev/sr0 /mnt/cdrom
- cd /mnt/cdrom/Packages (ls就可以看到光盘的软件包了)
查询
rpm{-q|-query} [select-options] [query-options] rpm –q packagename
-qa: 查询所有包以安装的包 [ 如 rpm –qa rpm –qa |grep “php*”]
-qf :f后跟系统文件, 查看指定的文件由哪个程序包安装生成
-qp /PATH/TO/PACKAGE_FILE:针对尚未安装的程序包文件做查询操作;
-qR 查询包的依赖性
-ql:查询包中文件安装位置
……
校验
rpm{-V|--verify} [select-options] [verify-options]
如rpm –V PACKAGE_FILE ...
没有提示任何信息证明此包没有被修改过;
导入所需要公钥校验:
rpm --import/PATH/FROM/GPG-PUBKEY-FILE
安装:
rpm {-i|--install}[install-options] PACKAGE_FILE ...
-v: verbose 显示信息
-vv: 显示更多的信息
-h: 以hash的方式(即#)显示程序包管理执行进度;每个#表示2%的进度
[install-options]
--test:测试安装,但不真正执行安装过程;dry run模式;
--nodeps:忽略依赖关系;
--replacepkgs:重新安装;
--nosignature:不检查来源合法性;
--nodigest:不检查包完整性;
升级:
rpm {-U|--upgrade}[install-options] PACKAGE_FILE ...
rpm {-F|--freshen}[install-options] PACKAGE_FILE ...
upgrage:安装有旧版程序包,则“升级”;如果不存在旧版程序包,则“安装”;
freeshen:安装有旧版程序包,则“升级”;如果不存在旧版程序包,则不执行升级操作;
卸载
rpm{-e|--erase} [--allmatches] [--nodeps] [--noscripts]
如rpm –e httpd
3、yum命令
3.1、yum使用简介
yum [options] [command] [package ...]
yumlist 查询所有可用软件包列表
yumsearch package ...
yum –y install package ... 安装 –y表示自动回答yes
yum –y update package ...
-
- 如果不加包名只写了yum –y update就会升级所有的软件包(包括linux内核),linux升级之后必须在本地对linux做一定的配置服务器才可以用,误写会使服务器直接崩溃;同时,卸载时候 yum –y remove 包名
- 尽量不要用yum卸载,很容易把系统搞崩溃
yum grouplist 列出所有可用的软件组列表
yum groupinstall/groupremove “软件组名” 安装/卸载指定软件组
3.2、yum仓库
/etc/yum.repos.d/*.repo:为仓库的指向提供配置 yum源,使用网络源时一定要使用.repo所在的路径而不是在.repo目录里面;
仓库指向的定义:
[repositoryID]
name=Some name for thisrepository给出仓库名字
baseurl=url://path/to/repository/ 指出仓库的访问路径=号左右不要有空格,可以指明多个路径
enabled={1|0} 是否启用此仓库,默认是启用的[即value=1]
gpgcheck={1|0} 对于此仓库的所有程序包是否检查合法性、完整性、签名信息
gpgkey=URL url就是能访问到秘钥文件的路径
enablegroups={1|0} 是否支持使用组批量管理程序包
failovermethod={roundrobin|priority} 故障转移方法,用于仓库的挑选,默认为:roundrobin,意为随机挑选;
自定义yum源: 备份系统自带的repo文件并重命名,创建.repo文件;
程序包管理:rpm&yum命令