目录
  1. 1. 软件包管理机制
    1. 1.1. 1、rpm
      1. 1.1.1. 定义
      2. 1.1.2. 特点
      3. 1.1.3. 命名格式
      4. 1.1.4. 安装流程
      5. 1.1.5. 默认安装路径:
      6. 1.1.6. 安装参数:
      7. 1.1.7. 查询参数:
        1. 1.1.7.1. 查询已安装软件
        2. 1.1.7.2. 查询rpm文件
        3. 1.1.7.3. 验证参数:
        4. 1.1.7.4. 验证信息:SM5DLUGT c filename
    2. 1.2. 2、srpm(source rpm)
      1. 1.2.1. 定义:
      2. 1.2.2. 过程:
      3. 1.2.3. 安装srpm文件:
      4. 1.2.4. srpm路径与需要软件:
    3. 1.3. 3、srpms设置文件内容(*.spec)
      1. 1.3.1. 介绍软件基本相关信息
      2. 1.3.2. 设置依赖属性需求
      3. 1.3.3. 编译预处理,编译所需命令
      4. 1.3.4. 列出软件发布的文件
      5. 1.3.5. 列出软件更改的历史记录
      6. 1.3.6. srpm编译命令
    4. 1.4. 4、YUM在线升级机制
      1. 1.4.1. yum查询参数:
      2. 1.4.2. 安装/升级参数:
      3. 1.4.3. 删除参数:
      4. 1.4.4. Yum设置文件
        1. 1.4.4.1. 内容解析:
      5. 1.4.5. yum软件组功能
学习Linux-软件包管理机制

软件包管理机制

1、rpm

定义

1
是一种数据库记录方式将自己所需的软件安装到linux系统上的一套管理机制 

特点

1
将要安装的软件编译打包成rpm机制的安装包,在安装包里有默认数据库,记录该软件安装需要的默认依赖属性软件包。

命名格式

1
软件名称-软件版本信息-发布次数-适合的硬件平台.rpm

安装流程

1
读取文件内记载的设置参数内容--》比较linux系统环境,找出属性依赖软件安装问题--》安装--》软件相关信息写入/var/lib/rpm/下数据库文件(记录有数字证书信息)

默认安装路径:

1
2
3
4
5
/etc:软件配置文件
/usr/bin:二进制可执行文件
/usr/lib:程序使用的动态数据库
/usr/share/doc:帮助手册
/usr/share/man:man page文件

安装参数:

1
2
3
4
5
6
7
8
9
10
rpm    -i(install) -v(查看详细安装信息) -h(显示安装进度) 文件名/网址
--nodeps //发现有依赖问题,强制安装
--replacediles //覆盖文件安装
--replacepkgs //重复安装
--force //强制安装,不管什么原因
--text //测试软件是否可以被安装,找出依赖问题
--justdb //更新rpm数据库相关信息
--nosignature //略过数字证书
--perfix 路径 //自定义安装路径
--noscripts //不让软件在安装时执行系统命令

查询参数:

查询已安装软件
1
2
3
4
5
6
7
8
rpm    -q[ailcdRf]      
-qa(all) //查询已安装软件
-qi(imformation) //列出软件详细信息
-ql(list) //列出软件所有文件与目录所在完整文件名
-qc //列出该软件所有配置文件
-qd //列出该软件所有帮助文件
-qR(requires) //列出该软件的依赖
-qf //找出文件属于安装的哪个文件
查询rpm文件
1
rpm	-qp[icdlR]        //参数意义与上述说明一致
验证参数:
1
2
3
4
rpm    -V  软件            //文件是否被改动
-Va //列出系统上所有被改动的文件
-Vp //列出该软件可能被改动的文件
-Vf //列出某个文件是否被改动
验证信息:SM5DLUGT c filename
1
2
3
4
5
S:文件大小容量是否改动;M:文件类型或属性;5:MD5码;D:设备主/次代码;L:LI=ink路径;U:文件所有者;G:文件所属组;T:创建时间。
c代表文件类型:c:设置文件;d:文档;g:ghost;l:授权文件;r:自述文件。
rpm卸载
rpm -e 文件 //卸载文件
rpm --rebuilddb //重建数据库

2、srpm(source rpm)

定义:

1
没有经过编译,提供的是源代码,以\*.src.rpm格式命名。其中含有该软件所需要的依赖性软件的说明以及所有rpm所提供的文件。

过程:

1
会先以rpm机制编译成rpm包,再将文件安装到系统上。

安装srpm文件:

1
2
rpbuild --rebuild        //将srpm文件编译与打包,但不安装
--recompile //直接编译打包且安装

srpm路径与需要软件:

1
2
3
4
5
6
/usr/src/redhat/SPECS    //放置该软件设置文件
/usr/src/redhat/SOURCES //放置源文件以及config设置文件
/usr/src/redhat/BUILD //存放编译过程中的暂存数据
/usr/src/redhat/RPMS //顺利编译后,放置打包的文件
/usr/src/redhat/SRPMS //放置srpm封装的文件
注:编译错误会在/tmp产生错误文档,可以查看此文档排错

3、srpms设置文件内容(*.spec)

介绍软件基本相关信息

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Summary(主要说明)
Name(软件名称)
Version(版本)
Release(打包次数说明)
License(授权模式)
Group(开发团体名称)
Url(官方网站)
Source(软件来源)
patch(补丁)
BuildRoot(设置作为编译,使用哪个目录来临时存放中间文件)
ExclusiveArch(说明软件适合安装的硬件)
Requires(软件依赖)
Prerep(需要的前驱程序)
BuildRequires(编译过程中需要的软件)
Packager(软件打包者)
Vender(开发厂商)

设置依赖属性需求

1
2
3
4
5
BuildRoot:%{\_tmppath}/%{name}-%{version}-%{release}-root
Prereq: //前驱程序
Requires: //所需依赖
BuildRequires: //所需工具软件
%description //软件描述

编译预处理,编译所需命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
%prep                //预处理,大致是patch软件
%setup -q //解压缩之类的工作
%patch -p1 -b .config
%patch -p1 -b .buildroot
%patch -p1 -b 。ipchains
注:此项主要工作:1、进行补丁等工作;2、寻找需要的软件目录是否存在;3、事先新建所需目录;4、如果安装时会发生文件覆盖,则进行备份工作。
%build //实际编译
cd src
autoconf
CFLAGS="-D GUN SOURCE" %configure
make
install -m o755 %{SOURCE1} scritps
install -m o755 %{SOURCE2} scritps
install -m o755 %{SOURCE3} scritps
install -m o755 %{SOURCE4} scritps
install -m o755 %{SOURCE5} scritps
%install //安装过程
rm -rf %{buildroot}
mkdir -p %{buildroot}/sbin
make -C src install RPM INSTALL ROOT-%{buildroot}

列出软件发布的文件

1
2
3
%files
%defatter (-,root,root)
%doc 文件

列出软件更改的历史记录

1
2
3
%changelog
\*:以时间、修改者、email、与软件版本作为说明
-:做的详细说明

srpm编译命令

1
2
rpmbuild -ba(同时生成rpm与srpm) -bb(仅编译成rpm) \*.spec
编译步骤:进入/usr/src/redhat/BUILD目录--》依照\*.spec文件的name与version定义工作目录--》依照\*.spec中的source设置将/usr/src/redhat/SOURCE中的文件进行解压缩--》开始%build与%install--》将打包文件放置

4、YUM在线升级机制

yum查询参数:

1
2
3
4
5
6
yum    -y                       //自动提供yes响应
--installroot=/some/path //自定义安装路径
search //搜索软件名称
list //列出yum管理的所有软件
info //所有信息
provides //从文件中搜索软件

安装/升级参数:

1
2
yum    install                  //安装
update //更新

删除参数:

1
Yum    remove                   //删除

Yum设置文件

1
/etc/yum.repos.d/CentOS-Base.repo
内容解析:
1
2
3
4
5
6
7
[Base]:代表容器的名字
name:说明容器意义
mirrorlist=:容器可以使用的镜像站点
baseurl=:容器的实际网址
enable=1:容器被启动
gpgcheck=1:数字证书验证启动
gpgket=:数字证书公匙所在位置

#### 清除本机旧数据

1
2
3
yum clean packages               //将已下载的文件删除
headers //将下载的软件文件头删除
all //将所有容器数据删除

yum软件组功能

1
2
3
4
yum    grouplist                  //列出可使用的软件组清单
groupinfo //了解该软件组名称
groupinsatll //安装选中的软件组
groupremove //删除软件组
文章作者: rack-leen
文章链接: http://yoursite.com/2019/04/20/Linux/%E9%B8%9F%E5%93%A5%E7%9A%84Linux%E7%A7%81%E6%88%BF%E8%8F%9C%E7%AC%94%E8%AE%B0/%E5%AD%A6%E4%B9%A0Linux-%E8%BD%AF%E4%BB%B6%E5%8C%85%E7%AE%A1%E7%90%86%E6%9C%BA%E5%88%B6/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 rack-leen's blog
打赏
  • 微信
  • 支付宝

评论