rpm简介

rpm( Red Hat Package Manager )是一个开放的软件包管理系统。它工作于Red Hat Linux及其他Linux系统,成为Linux中公认的软件包管理标准。

rpm将编译好的应用程序的各组成文件打包成一个或几个程序包文件,从而更方便地实现程序包的安装、升级、卸载和查询等管理操作

rpm维护一个所有已安装的软件包和文件的数据库,可以让用户进行功能强大的软件包查询和验证工作。

在rpm学习前我们需要知道其它一些知识点来辅助学习:RPM学习第一篇



rpm软件包的命名格式

rpm包的命名格式一般有两部分组成。

  第一部分是源代码版本号。比如:

name-VERSION.tar.gz

  name:源代码包的名称

  VERSION: major.minor.release 

    major: 主版本号,一般程序功能有重大改变才会变动

    minor: 次版本号,程序功能某个小的分支有变动,才会变动

    release: 发行号,修正了某个BUG或升级了某段代码,才会变动

  

   第二部分是rpm打包制作的版本

如果用源代码比作面粉,rpm包比作馒头,它们的区别在于: 面粉有不同的工艺,拿面粉又做出了各种可口的馒头。

这样最终的软件包就构成了:

name-VERSION-release.arch.rpm

其中

name-VERSION仍然沿用源代码包的命名

release : 是rpm包打包制作的发行号

arch:是指明适用于哪种操作系统平台,有i386, x64(amd64), ppc, noarch等



获取包的方法

除了系统发行版的光盘自带的rpm软件包外,通常还需要到网上下载,下面是几个可信的获取软件包的途径

(1) 官方的文件服务器(或镜像站点)

http://mirrors.aliyum.com

http://mirrors.sohu.com

http://mirrors.163.com

(2) 项目的官方站点

(3) 第三方组织

(a) EPEL

(b) 搜索引擎

http://pkgs.org

http://rpmfind.net

http://rpm.pbone.net

下载后建议先检查程序包的合法性和完整性。(4) 自己动手编译



rpm命令使用

安装:-i, --install        

升级:-U, --update, -F, --freshen

卸载:-e, --erase

查询:-q, --query

验证:-V, --verify

数据库维护:--builddb, –initdb

包的来源合法性验证和完整性验证: -K , --import



No1、安装

命令格式:

    rpm {-i|--install} [install-options] PACKAGE_FILE ...

 通用选项

-v : verbose ,详细信息

-vv : 更详细的信息

[install-options]

-h:hash marks输出进度条,每个#表示2%的进度

--test:测试安装,检查并报告依赖关系及冲突消息等

--nodeps:忽略依赖关系;不建议使用

--replacepkgs:强制重新安装已经安装的软件包  【这种安装,其配置文件可能不会安装,也有可能把原来的配置文件覆盖了】

--nosignature:不检查包签名信息,不检查来源合法性

--nodigest:不检查包完整性信息

注意:每一个程序安装时可能会运行脚本,做一些准备操作。rpm包可以自带脚本,这些脚本有四类(四类脚本不一定会全部带上),分别在不同的时刻被触发,分别是:

preinstall : 安装过程开始之前运行的脚本,%pre , --nopre

postinstall : 安装过程完成之后运行的脚本,%post , --nopost

preuninstall : 卸载过程真正开始执行之前运行的脚本,%preun, --nopreun

postuninstall : 卸载过程完成之后运行的脚本,%postun , --nopostun

常用命令:

    rpm  -ivh  PACKAGE_FILE ...

-------------------------------------------------------------

-------------------------------------------------------------

示例:

1、测试安装:

1 [root@oldboy mnt]# rpm -ivh --test mysql-5.1.73-5.el6_6.x86_64.rpm
2 warning: mysql-5.1.73-5.el6_6.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
3 Preparing... ########################################### [100%]
4 [root@oldboy mnt]#

2、正常安装:

1 [root@oldboy mnt]# rpm -ivh python-2.6.6-64.el6.x86_64.rpm
2 warning: python-2.6.6-64.el6.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
3 Preparing... ########################################### [100%]
4 package python-2.6.6-64.el6.x86_64 is already installed
5 [root@oldboy mnt]#

【注意:该warning是没有对包进行合法验证】

3、测试安装,且忽略依赖关系:

 1 [root@oldboy mnt]# rpm -ivh --test php-odbc-5.3.3-40.el6_6.x86_64.rpm
2 warning: php-odbc-5.3.3-40.el6_6.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
3 error: Failed dependencies:
4 libodbc.so.2()(64bit) is needed by php-odbc-5.3.3-40.el6_6.x86_64
5 php-common(x86-64) = 5.3.3-40.el6_6 is needed by php-odbc-5.3.3-40.el6_6.x86_64
6 php-pdo(x86-64) is needed by php-odbc-5.3.3-40.el6_6.x86_64
7 [root@oldboy mnt]# rpm -ivh --test --nodeps php-odbc-5.3.3-40.el6_6.x86_64.rpm
8 warning: php-odbc-5.3.3-40.el6_6.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
9 Preparing... ########################################### [100%]
10 [root@oldboy mnt]#
11
12 rpm -ivh --test --nodeps php-odbc-5.3.3-40.el6_6.x86_64.rpm

4、强制重新安装

 1 [root@oldboy mnt]# rpm -ivh zsh-4.3.11-4.el6.centos.x86_64.rpm
2 warning: zsh-4.3.11-4.el6.centos.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
3 Preparing... ########################################### [100%]
4 package zsh-4.3.11-4.el6.centos.x86_64 is already installed
5 [root@oldboy mnt]# rpm -ivh --replacepkgs zsh-4.3.11-4.el6.centos.x86_64.rpm
6 warning: zsh-4.3.11-4.el6.centos.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
7 Preparing... ########################################### [100%]
8 1:zsh ########################################### [100%]
9 [root@oldboy mnt]#
10
11 rpm -ivh --replacepkgs zsh-4.3.11-4.el6.centos.x86_64.rpm

5、安装时候不检查包的来源合法性

1 [root@oldboy mnt]# rpm -ivh --test --nodeps php-odbc-5.3.3-40.el6_6.x86_64.rpm
2 warning: php-odbc-5.3.3-40.el6_6.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
3 Preparing... ########################################### [100%]
4 [root@oldboy mnt]# rpm -ivh --test --nosignature --nodeps php-odbc-5.3.3-40.el6_6.x86_64.rpm
5 Preparing... ########################################### [100%]
6 [root@oldboy mnt]#
7
8 rpm -ivh --test --nosignature --nodeps php-odbc-5.3.3-40.el6_6.x86_64.rpm


No2、升级

命令格式:

    rpm {-U|--upgrade} [install-options] PACKAGE_FILE ...

    rpm {-F|--freshen} [install-options] PACKAGE_FILE ...

注意事项:

-U|--upgrade:如果没有旧版程序包,则安装程序包;如果有旧版程序包,则升级程序包
-F:仅升级,如果没有旧版程序包,则不执行任何操作  【好像不支持降级功能】

通用选项:

-v : verbose ,详细信息

-vv : 更详细的信息

[install-options]:

-h:hash marks输出进度条,每个#表示2%的进度

--test:只进行升级测试

--nodeps:忽略依赖关系;不建议使用

--nosignature:不检查包签名信息,不检查来源合法性

--oldpackage:降级,如果新版本存在很多问题,就要用到降级  【注意:-F好像不支持降级功能】

--force:强制升级,如果新版本不再为其它程序提供依赖服务,这时会报错,可用强制升级

注意:

  (1) 内核升级可能会有若然隐患问题,所以不要对内核进行升级,如果要测试新版本内核,可用直接安装新版本内核,让与老版本并存。

  (2) 如果某程序包在安装后配置文件曾做过修改,在升级时,新版本程序提供的同名配置文件不会覆盖原有版本的配置文件,而是把新版本的配置文件重命名( FILENAME.rpmnew )后提供。

常用命令:    

    rpm -Uvh PACKAGE_FILE ...
     rpm -Fvh PACKAGE_FILE ...

--------------------------------------------------------------------------

--------------------------------------------------------------------------

示例:

1、-U和-F的区别

1 [root@oldboy mnt]# rpm -Fvh --test --nodeps php-odbc-5.3.3-40.el6_6.x86_64.rpm
2 warning: php-odbc-5.3.3-40.el6_6.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
3 [root@oldboy mnt]# rpm -Uvh --test --nodeps php-odbc-5.3.3-40.el6_6.x86_64.rpm
4 warning: php-odbc-5.3.3-40.el6_6.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
5 Preparing... ########################################### [100%]
6 [root@oldboy mnt]#
7
8 rpm -Fvh --test --nodeps php-odbc-5.3.3-40.el6_6.x86_64.rpm / rpm -Uvh --test --nodeps php-odbc-5.3.3-40.el6_6.x86_64.rpm

2、当老版本存在,升级"老版本"

1 [root@oldboy mnt]# rpm -q zsh
2 zsh-4.3.11-4.el6.centos.x86_64
3 [root@oldboy mnt]# rpm -Uvh --nodeps zsh-5.0.2-28.el7.x86_64.rpm
4 warning: zsh-5.0.2-28.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY
5 Preparing... ########################################### [100%]
6 1:zsh ########################################### [100%]
7 [root@oldboy mnt]#
8
9 rpm -Uvh --nodeps zsh-5.0.2-28.el7.x86_64.rpm

3、降级新版本

 1 [root@oldboy mnt]# rpm -q zsh
2 zsh-5.0.2-28.el7.x86_64
3 [root@oldboy mnt]# rpm -Fvh --oldpackage zsh-4.3.11-4.el6.centos.x86_64.rpm [-F 好像不支持降级功能]
4 warning: zsh-4.3.11-4.el6.centos.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
5 [root@oldboy mnt]# rpm -Uvh --oldpackage zsh-4.3.11-4.el6.centos.x86_64.rpm
6 warning: zsh-4.3.11-4.el6.centos.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
7 Preparing... ########################################### [100%]
8 1:zsh ########################################### [100%]
9 [root@oldboy mnt]#
10
11 rpm -Uvh --oldpackage zsh-4.3.11-4.el6.centos.x86_64.rpm


No3、卸载

命令格式:

    rpm {-e|--erase} [--allmatches] [--nodeps] [--noscripts] [--test] PACKAGE_NAME ...      

注意:这里的PACKAGE NAME  指的是包名,不是包的全名。

选项:

--allmatches:卸载所有匹配指定名称的程序包的各版本,即删除系统里有同一程序的多个安装版本

--nodeps:忽略依赖关系

--test:测试卸载,dry run模式

--noscripts:

---------------------------------------------------------

---------------------------------------------------------

示例:

1、卸载包

1 [root@oldboy mnt]# rpm -q zsh
2 zsh-5.0.2-28.el7.x86_64
3 [root@oldboy mnt]# rpm -e zsh-5.0.2-28.el7.x86_64
4 [root@oldboy mnt]# rpm -q zsh
5 package zsh is not installed
6 [root@oldboy mnt]#
7
8 rpm -e zsh-5.0.2-28.el7.x86_64


四、查询

命令格式:

    rpm {-q|--query} [select-options] [query-options] 

其中

[select-options]

PACKAGE_NAME:查询指定的程序包是否已经安装,及其版本

-a, --all:列出所有已经安装过的包

-f FILE:查询指定的文件由哪个程序包安装生成

-p, --package PACKAGE_FILE:用于实现对未安装的程序包执行查询操作

--whatprovides CAPABILITY:查询指定的CAPABILITY由哪个程序包提供

--whatrequires CAPABILITY:查询指定的CAPABILITY被哪个包所依赖

[query-options]

--changelog:查询rpm包的changlog,注意非源码包的历史修订

-l, --list:程序安装生成的所有文件列表

-i, --info:程序包相关的信息,版本号、大小、所属的包组,等

-c, --configfiles:查询指定的程序包提供的配置文件

-d, --docfiles:查询指定的程序包提供的文档

--provides:列出指定的程序包提供的所有CAPABILITY

-R, --requires:查询指定的程序包所依赖的CAPABILITY

--scripts:查看程序包自带的脚本片断

常见组合用法:

查询已安装包的信息【后直接接包名就可实现】

  -qi PACKAGE //查询程序包information

  -qf FILE //查询文件由哪个程序包生成

  -qc PACKAGE //查询程序包的配置文件

  -ql PACKAGE //查询程序包生成的文件列表

  -qd PACKAGE //查询程序包安装后生成的文档

查询为安装包的信息【后接包的全名】

  -qpi PACKAGE_FILE //查询未安装程序包的information

  -qpl PACKAGE_FILE //查询未安装程序包将要生成的文件列表

  -qpc PACKAGE_FILE, ... //查询未安装程序包将要提供的配置文件

示例:

1、查询bash软件包提供的所有CAPABILITY  【需要理解】

 1 [root@oldboy mnt]# rpm -q --provides bash
2 config(bash) = 4.1.2-33.el6
3 bash = 4.1.2-33.el6
4 bash(x86-64) = 4.1.2-33.el6
5 [root@oldboy mnt]# rpm -q --provides mysql
6 mysql = 5.1.73-5.el6_6
7 mysql(x86-64) = 5.1.73-5.el6_6
8 [root@oldboy mnt]# rpm -q --provides zsh
9 config(zsh) = 5.0.2-28.el7
10 zsh = 5.0.2-28.el7
11 zsh(x86-64) = 5.0.2-28.el7
12 [root@oldboy mnt]# rpm -q --whatprovides 'config(bash)'
13 bash-4.1.2-33.el6.x86_64
14 [root@oldboy mnt]# rpm -q --whatprovides 'bash(x86-64)'
15 bash-4.1.2-33.el6.x86_64
16 [root@oldboy mnt]# rpm -q --whatprovides 'bash'
17 bash-4.1.2-33.el6.x86_64
18 [root@oldboy mnt]#

2、查询sed软件包所依赖的CAPABILITY

 1 [root@oldboy mnt]# rpm -qR sed
2 /bin/sh
3 /bin/sh
4 /sbin/install-info
5 /sbin/install-info
6 libc.so.6()(64bit)
7 libc.so.6(GLIBC_2.2.5)(64bit)
8 libc.so.6(GLIBC_2.3)(64bit)
9 libc.so.6(GLIBC_2.3.4)(64bit)
10 libc.so.6(GLIBC_2.4)(64bit)
11 libselinux.so.1()(64bit)
12 rpmlib(CompressedFileNames) <= 3.0.4-1
13 rpmlib(FileDigests) <= 4.6.0-1
14 rpmlib(PayloadFilesHavePrefix) <= 4.0-1
15 rtld(GNU_HASH)
16 rpmlib(PayloadIsXz) <= 5.2-1
17 [root@oldboy mnt]#
18
19 rpm -qR sed

3、查询未安装php-common软件包的配置文件

 1 [root@oldboy mnt]# rpm -qpc php-common-5.3.3-40.el6_6.x86_64.rpm
2 warning: php-common-5.3.3-40.el6_6.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
3 /etc/php.d/curl.ini
4 /etc/php.d/fileinfo.ini
5 /etc/php.d/json.ini
6 /etc/php.d/phar.ini
7 /etc/php.d/zip.ini
8 /etc/php.ini
9
10 rpm -qpc php-common-5.3.3-40.el6_6.x86_64.rpm

4、查询系统中安装了哪些rpm包: rpm -qa

5、查找所有安装过的包含某个字符串sql的软件包: rpm -qa | grep sql

6、查询MySQL软件包中的文件安装到那里去了:rpm -qa MySQL

7、查询XX.rpm中包含那些文件。

  • 一个没有安装过的软件包,使用rpm -qlp XX.rpm
  • 一个已经安装过的软件包,还可以使用rpm -ql XX.rpm

8、查询某个程序是哪个软件包安装的:

  rpm -qf `/bin/sed`    #返回软件包的全名
  rpm -qif `/bin/sed` #返回软件包的有关信息
  rpm -qlf `/bin/sed` #返回软件包的文件列表


五、校验

命令格式:

    rpm {-V|--verify} [select-options] [verify-options]

【注意: 一般用于对软件包安装后,校验软件包所有的文件有没有发生修改。】

示例:

[root@oldboy mnt]# rpm -V zsh      //没有返回任何提示,即校验通过

[root@oldboy mnt]# vim /usr/share/zsh/5.0.2/functions/send-invisible   //往zsh包的配置文件添加了几个字符

[root@oldboy mnt]# rpm -V zsh

S.5....T. /usr/share/zsh/5.0.2/functions/send-invisible  //这次,就显示被修改过了


如果一切都被校验正确,屏幕上就不会显示输出。如果出现有修改,相关信息就会被显示至屏幕。输出的格式中,单用“ . ” 表示测试通过,如果是下列字符则代表某类测试失败:

5: MD5校验和

S: 文件大小

L: 符号链接

T: 文件修改时间

D: 设备

U: 用户

G: 组群

M: 模式( 包含权限和文件类型 )

?: 不可读文件



六、.数据库重建  --> 仅管理员才能操作,目前还不知道怎么用??

rpm管理器数据库路径:

  /var/lib/rpm/

所有的rpm查询操作都是通过此处的数据库进行的。

命令格式:

    rpm {--initdb|--rebuilddb} [--dbpath DIRECTORY] [--root DIRECTORY]

其中:

--initdb:初始化数据库。如果事先不存在数据库,则新建之;否则,不执行任何操作
--rebuilddb:重新构建。无论当前存在与否,直接重建数据库



No7.包来源合法性验证和完整性验证 --> 这一步需要在包安装之前进行

在上面演示的图片中,在每次安装软件包时都会有一个警告信息。软件包在打包制作时,会附加上用单向加密了的软件包自身的特征码,只有与之对应的公钥才能解密验证包的合法性并得到特征码,再利用特征码验证软件包的完整性。由于在本地没有对应的公钥所以才会出现上面的警告信息。这时需要获取公钥,公钥的获取很关键,直接关系着软件包的来源合法性。

注意:

  1、在可靠站点下的程序包一般我们获取不到公钥,所以就无法进行来源合法性验证,所以最好使用系统光盘自带的rpm程序包。

  2、如果是系统光盘自带的rpm程序包的话,想要进行来源合法性验正的话,直接导入公钥再验证

首先要获取并导入信任的包制作者的密钥,对于CentOS发行版来说:

  系统在安装完成后,系统会自动复制一份公钥至/etc/pki/rpm-gpg/ 下,用命令导入公钥,如下:

1
[root@localhost ~]# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

  还有一种就是把密钥路径指向发行版光盘

1
[root@localhost ~]# rpm --import /media/RPM-GPG-KEY-CentOS-7

接下来安装软件包时系统就可以自动验证了。

还可以在安装软件包前,手动验证:

1
[root@localhost ~]# rpm -K zsh-5.0.2-7.e17.x86_64.rpm

  关于包合法性验证还可以查看博客:链接地址

 

【程序包管理】Linux程序包管理之rpm安装总结的更多相关文章

  1. Apache源码包在LINUX(CENTOS6.8)中的安装(出现问题及解决)

    任务:在CENT6.8系统中安装Apache(版本为:httpd-2.4.41) 前提:由于源码包必须先编译后安装,所以必须先安装编译器:gcc 理论步骤: 1.检测gcc软件包,如果不存在则进行安装 ...

  2. 操作系統3-內存管理(Linux內存管理)

    操作系統3-內存管理(Linux系統的內存管理方法) 9.Linux系統的內存管理方法 Linux採用"按需調頁"算法,支持三層管理策略.由於Intel CPU在硬件級提供了段式存 ...

  3. windows程序员开发linux程序的头一个月

    开发环境选择 vim,vscode,qt,visual studio都可以做linux c++开发,但是作为windows程序员,最熟悉的还是visual stuio,加上visual studio ...

  4. 如何实现在Windows上运行Linux程序,附示例代码

    微软在去年发布了Bash On Windows, 这项技术允许在Windows上运行Linux程序, 我相信已经有很多文章解释过Bash On Windows的原理, 而今天的这篇文章将会讲解如何自己 ...

  5. Linux程序包管理之rpm

    rpm简介 rpm( Red Hat Package Manager )是一个开放的软件包管理系统.它工作于Red Hat Linux及其他Linux系统,成为Linux中公认的软件包管理标准. rp ...

  6. Linux程序包管理之yum及源代码安装

    第十六章.Linux程序包管理之yum及源代码安装 目录 yum介绍 yum配置文件 yum的repo配置文件中可用的变量 yum命令的使用 使用光盘作为本地yum仓库 如何创建yum仓库 编译安装的 ...

  7. Linux程序包管理.md

    rpm 简介 RPM包管理员(简称RPM,全称为The RPM Package Manager)是在Linux下广泛使用的软件包管理器.RPM此名词可能是指.rpm的文件格式的软件包,也可能是指其本身 ...

  8. Linux程序包管理rpm与yum

    Linux程序包管理 Linux中软件的安装主要有两种形式:一种是直接下载源代码包自行编译后安装,另一种直接获取rpm软件包进行安装. 程序的组成部分: 二进制程序:程序的主体文件,比如我们运行一个l ...

  9. Linux 程序包管理-RPM

    程序简介:  POSIX(Portable Openratin System)跨平台系统:不同操作系统平台的标准C库(glibc)都是遵循POSIX规范的,这样基于标准库开发程序的源代码可以夸平台编译 ...

  10. Linux程序包管理初步-rpm的使用

    在Linux系统上,一般而言,对于程序包管理器来说分为三类: debian:dpt,dpkg;             (程序包后缀.deb) rhel:rpm (程序包后缀.rpm) suse:rp ...

随机推荐

  1. golang实现mysql udf

    UDF(user-defined function) 当mysql提供的内置函数(count,min,max等)无法满足需求时,udf用于扩展自定义函数,满足特定查询需求. 在这里,假定一种db应用场 ...

  2. 【linux】i2c使用分析&源码实战

    目录 前言 1. 设备检查命令 1.1 查看I2C驱动 1.2 i2c-tools 1.2.1 I2C-detect安装 1.2.2 i2cdetect 命令 1.2.3 i2cget 命令 1.2. ...

  3. mark一下2020已经阅读的书单专栏和源码

    1.书籍 已经阅读: 深度工作 代码整洁之道 正在阅读: 敏捷软件开发 程序员修炼之道 程序员思维 计划阅读: 人月神话 数据密集型系统设计 如何阅读一本书 卓有成效的管理者 算法 第四版 sprin ...

  4. 【证书】curl 和 java 请求报证书错误

    1. 说明: 以下:例子的域名因为工作环境的问题,被我拿自己的博客域名替代了,所以无法进行模拟测试,请珍重,哈哈! 2. 环境: centos:7.5 java jdk:1.8.0_74 3. cur ...

  5. SpringCloud 源码系列(1)—— 注册中心 Eureka(上)

    Eureka 是 Netflix 公司开源的一个服务注册与发现的组件,和其他 Netflix 公司的服务组件(例如负载均衡.熔断器.网关等)一起,被 Spring Cloud 整合为 Spring C ...

  6. Java支付项目实战教程,包括支付宝,微信等支付方式,不看亏!

    须知:视频来源网络,侵权请联系删除! 获取方式 扫描下面二维码回复:1024

  7. Verilog单周期CPU(未完待续)

    单周期CPU:指令周期=CPU周期 Top模块作为数据通路 运算器中有ALU,通路寄存器(R1.R2.R3.R4),数据缓冲寄存器(鉴于书上的运算器只有R0)........... 此为ALU和通用寄 ...

  8. 第12.6节 Python标准库其他内置模块导览

    一. 文本处理服务 string模块 : 常见的字符串操作 difflib模块: 计算差异的辅助工具 textwrap模块: 文本自动换行与填充,能够格式化文本段落,以适应给定的屏幕宽度: unico ...

  9. 应用案例——高并发 WEB 服务器队列的应用

    在高并发 HTTP 反向代理服务器 Nginx 中,存在着一个跟性能息息相关的模块 - 文件缓存. 经常访问到的文件会被 nginx 从磁盘缓存到内存,这样可以极大的提高 Nginx 的并发能力,不过 ...

  10. 腾讯游戏 K8s 应用实践|更贴近业务场景的 K8s 工作负载:GameDeployment & GameStatefulSet

    引言 蓝鲸容器服务(Blueking Container Service,以下简称BCS)是腾讯 IEG 互动娱乐事业群的容器上云平台,底层基于腾讯云容器服务(Tencent Kubernetes E ...