SYNOPSIS

查询和校验软件包:

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

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

rpm --import PUBKEY ...

rpm {-K|--checksig} [--nosignature] [--nodigest]
PACKAGE_FILE ...

安装,升级和卸载软件包:

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

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

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

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

[--notriggers] [--repackage] [--test] PACKAGE_NAME ...

其他:

rpm {--initdb|--rebuilddb}

rpm {--addsign|--resign} PACKAGE_FILE
...

rpm {--querytags|--showrc}

rpm {--setperms|--setugids}
PACKAGE_NAME ...

选择选项

[PACKAGE_NAME] [-a,--all] [-f,--file FILE]

[-g,--group GROUP] {-p,--package PACKAGE_FILE]

[--fileid MD5] [--hdrid SHA1] [--pkgid MD5] [--tid TID]

[--querybynumber HDRNUM] [--triggeredby PACKAGE_NAME]

[--whatprovides CAPABILITY] [--whatrequires CAPABILITY]

查询选项

[--changelog] [-c,--configfiles] [-d,--docfiles] [--dump]

[--filesbypkg] [-i,--info] [--last] [-l,--list]

[--provides] [--qf,--queryformat QUERYFMT]

[-R,--requires] [--scripts] [-s,--state]

[--triggers,--triggerscripts]

校验选项

[--nodeps] [--nofiles] [--noscripts]

[--nodigest] [--nosignature]

[--nolinkto] [--nomd5] [--nosize] [--nouser]

[--nogroup] [--nomtime] [--nomode] [--nordev]

安装选项

[--aid] [--allfiles] [--badreloc] [--excludepath OLDPATH]

[--excludedocs] [--force] [-h,--hash]

[--ignoresize] [--ignorearch] [--ignoreos]

[--includedocs] [--justdb] [--nodeps]

[--nodigest] [--nosignature] [--nosuggest]

[--noorder] [--noscripts] [--notriggers]

[--oldpackage] [--percent] [--prefix NEWPATH]

[--relocate OLDPATH=NEWPATH]

[--repackage] [--replacefiles] [--replacepkgs]

[--test]

DESCRIPTION

rpm 是一个强大的 软件包管理器,可以用来构建,安装,查询,校验,升级和卸载单独的软件打包。一个 打包
包括文件的归档,以及用来安装和卸载归档文件的元信息。元信息包括辅助脚本,文件属性以及打包的描述性信息。打包
有两种,二进制打包,用来封装要安装的软件;源代码打包,包含源代码以及为生成二进制打包,必要的文件。

必须选择下列模式之一: Query 查询, Verify 校验, Signature Check 检查签名,
Install/Upgrade/Freshen 安装/升级/更新, Uninstall 卸载, Initialize
Database 初始化数据库
, Rebuild Database 重构数据库, Resign 重签名, Add
Signature 添加签名
, Set Owners/Groups 设置属主, Show Querytags 显示查询标记,
以及 Show Configuration 显示配置.

一般选项

这些选项可以用在所有不同的模式中。

-?, --help
输出更长的帮助信息。
--version
输出一行信息,包括使用的 rpm 的版本号。
--quiet
输出尽可能少的信息 - 通常只有错误会显示。
-v
输出冗余信息 - 通常,常规的进度信息将显示。
-vv
输出大量丑陋的调试信息。
--rcfile FILELIST
FILELIST 中冒号分隔的每个文件名都被 rpm
按顺序读取,从中获得配置信息。只有列表的第一个文件必须存在,波浪线将被替换为 $HOME。默认的 FILELIST
/usr/lib/rpm/rpmrc:/usr/lib/rpm/redhat/rpmrc:/etc/rpmrc:~/.rpmrc

--pipe CMD
rpm 的输出通过管道送到命令 CMD
--dbpath DIRECTORY
使用 DIRECTORY 中的数据库,而不是默认的路径 /var/lib/rpm
--root DIRECTORY
DIRECTORY 作为根文件系统,进行所有操作。这意味着将使用 DIRECTORY
中的数据库来进行依赖性检测,任何小程序 (也就是安装中的 %post 和构建中的 %prep) 都将在一个
chroot(2) 到 DIRECTORY 之后执行。

安装和升级选项

安装命令的一般形式是

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

这样安装了一个新软件包。

升级命令的一般形式是

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

这样安装或升级已安装的软件包到新版本。它与安装类似,只是所有其他版本的打包在新软件包安装后都将移除。

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

仅当系统中存在更早的版本时,这样会升级软件包。PACKAGE_FILE 必须指定为 ftphttp
URL,这样软件包可以在安装之前去下载。参见 FTP/HTTP OPTIONS 中有关 rpm 的内嵌 ftp
http 客户端支持。

--aid
需要时将建议的软件包加入事务集。
--allfiles
安装或升级软件包中所有 missingok 文件,哪怕它们已经存在。
--badreloc
--relocate 搭配使用,允许所有文件的重定位,而不仅仅是在二进制打包中,重定位提示包含的那些 OLDPATH
--excludepath OLDPATH
不安装名称以 OLDPATH 开始的文件。
--excludedocs
不安装任何标记为文档的文件 (包括手册页和 texinfo)。
--force
与使用 --replacepkgs, --replacefiles, 以及 --oldpackage 相同。
-h, --hash
在打包被解压时,输出 50 个 hash 符号 (#),用来与 -v|--verbose 配合,得到漂亮一点的输出。
--ignoresize
安装前不检测已挂载文件系统的空闲空间。
--ignorearch
允许安装或升级,即使二进制打包的体系结构与主机不匹配。
--ignoreos
允许安装或升级,即使二进制打包的操作系统与主机不匹配。
--includedocs
安装文档文件。这是默认的行为。
--justdb
只更新数据库,不更新文件系统。
--nodigest
读取时不校验打包或头部校验。
--nosignature
读取时不校验打包或头部签名。
--nodeps
在安装或升级前,不进行依赖性检测。
--nosuggest
不建议提供了所需依赖关系的软件包。
--noorder
不为安装重排序。通常软件包列表会被重排序,以满足依赖性关系。
--noscripts
--nopre
--nopost
--nopreun
--nopostun
不执行对应的小程序。--noscripts 选项与

--nopre --nopost --nopreun --nopostun

等价,将 %pre, %post, %preun, 和 %postun 小程序全部关闭。

--notriggers
--notriggerin
--notriggerun
--notriggerpostun
不执行任何对应的触发小程序。--notriggers 选项与

--notriggerin --notriggerun --notriggerpostun

等价,将 %triggerin, %triggerun, 和 %triggerpostun 小程序全部关闭。

--oldpackage
允许用旧软件包替换一个新软件包。
--percent
打印从软件包中解压文件的百分比。这是为了使 rpm 在其他工具中运行时简单一些。
--prefix NEWPATH
对于可重定位的包,将以软件包重定位提示的安装前缀开始的所有文件路径转换为以 NEWPATH 开始。
--relocate OLDPATH=NEWPATH
对于克重定位的二进制打包,将软件包重定位提示中,以 OLDPATH 开始的文件路径转换为以 NEWPATH
开始。这一选项可以使用多次,如果软件包中多个 OLDPATH 要重定位的话。
--repackage
在卸载前重新打包文件。过去安装的打包将根据宏 %_repackage_name_fmt 命名,将创建于宏
%_repackage_dir 指定的目录中 (默认值是 /var/spool/repackage)。
--replacefiles
安装软件包,即使他们替换了其他已安装的软件包的文件。
--replacepkgs
安装软件包,即使其中有些软件包已经被安装到了系统中。
--test
不安装软件包,仅仅检测并报告可能的冲突。

卸载选项

卸载命令的一般形式是

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

同时还可以用下列选项:

--allmatches
删除匹配 PACKAGE_NAME 的软件包的所有版本。通常情况下,如果 PACKAGE_NAME
匹配多个软件包将导致错误。
--nodeps
在卸载前不检测依赖关系。
--noscripts
--nopreun
--nopostun
不执行相应的小程序。--noscripts 选项在卸载过程中等价于

--nopreun --nopostun

%preun, 和 %postun 小程序的执行关闭。

--notriggers
--notriggerun
--notriggerpostun
不执行相应的触发小程序。--notriggers 选项等价于

--notriggerun --notriggerpostun

%triggerun, 和 %triggerpostun 小程序的执行关闭。

--repackage
卸载前重新打包文件。过去安装的软件包将根据宏 %_repackage_name_fmt 命名,存放到宏
%_repackage_dir 定义的目录中 (默认值是 /var/spool/repackage)。
--test
不真正卸载任何东西,仅仅尝试它们。与 -vv 选项联合使用,在调试时很有用。

查询选项

查询命令的一般形式是

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

可以指定输出时软件包信息的格式。为此,使用选项

--qf|--queryformat QUERYFMT

附带 QUERYFMT 格式化字符串。查询命令是标准的 printf(3) 格式的修改版本。格式包括静态字符串
(可能包括标准的 C 转义字符,新行符,跳格以及其他特殊字符) 以及 printf(3) 类型标记。由于 rpm
已知输出类型,因此应当忽略类型标记,使用头部字段名来代替,包含在 {} 中。字段名是大小写不敏感的,起始的 RPMTAG_
部分可以被忽略。

可选的输出格式是用 :typetag 表示。当前,支持的类型有:

:armor

将公钥以 ASCII 包装。

:base64
以 base64 编码二进制数据。
:date
使用 strftime(3) "%c" 格式。
:day
使用 strftime(3) "%a %b %d %Y" 格式。
:depflags
格式化依赖性标志。
:fflags
格式化文件标志。
:hex
以十六进制格式化。
:octal
以八进制格式化。
:perms
格式化文件权限。
:shescape
转义单引号,用于脚本。
:triggertype
显示触发的后缀。

例如,要只输出所查询的软件包的名称,可以使用 %{NAME} 作为格式化字符串。要分两列输出软件包名称和发行版信息,可以用
%-30{NAME}%{DISTRIBUTION}。如果执行时使用 --querytags 参数,rpm
将输出它已知的所有标记列表。

查询的选项有两个子集:软件包选择和信息选择。

软件包选择选项:

PACKAGE_NAME
查询名称为 PACKAGE_NAME 的已安装软件包。
-a, --all
查询所有已安装软件包。
-f, --file FILE
查询包含 FILE 的软件包。
--fileid MD5
查询包含给定文件描述字的软件包,例如,文件内容的 MD5 校验和。
-g, --group GROUP
查询属主为 GROUP 的软件包。
--hdrid SHA1
查询包含给定头部描述字的软件包,例如,不可变头部区域的 SHA1 校验和。
-p, --package PACKAGE_FILE
查询 (未安装的) 软件包 PACKAGE_FILE。这个文件可以指定为一个 ftphttp 样式的
URL,这时软件包头部将被下载并查询。参见 FTP/HTTP OPTIONS 中有关 rpm 的内部 ftp
http 客户端支持信息。参数 PACKAGE_FILE 如果不是一个二进制文件,将被解释为一个 ASCII
软件包说明。其中可以有以 '#' 开始的注释,其他的每行都可以包含以空格分隔的匹配表达式,如果是远程的地址,也包括 URL。这些将被扩展为路径,替换
manifest 参数的位置,作为 PACKAGE_FILE 参数的附加查询内容。
--pkgid MD5
查询含有给定软件包描述字的软件包,例如,包的头部以及有效内容的 MD5 校验和。
--querybynumber HDRNUM
直接查询第 HDRNUM 个数据库入口;这只在调试时有用。
--specfile SPECFILE
解释并查询 SPECFILE,就好像它是一个软件包。尽管并非所有信息都可获得,但这种查询允许 rpm 从 spec
文件中抽取信息,而不必写一个解释器。
--tid TID
查询包含给定 TID 事务描述字的软件包。当前使用 unix 时间戳作为事务描述字。任何在一次事务中安装或卸载的软件包拥有相同的描述字。
--triggeredby PACKAGE_NAME
查询被软件包 PACKAGE_NAME 触发的软件包。
--whatprovides CAPABILITY
查询提供了 CAPABILITY 能力的软件包。
--whatrequires CAPABILITY
查询所有需要 CAPABILITY 才能运作的软件包。

软件包查询选项:

--changelog
显示软件包的修改信息。
-c, --configfiles
只显示配置文件 (暗含了 -l).
-d, --docfiles
只显示文档文件 (暗含了 -l).
--dump
转储文件信息:

path size mtime md5sum mode owner group isconfig isdoc rdev symlink

这个选项必须与至少下列之一联合使用 -l, -c, -d.

--filesbypkg
列出所选每个软件包中的文件。
-i, --info
显示软件包信息,包括名称,版本,描述。如果指定了 --queryformat 就使用它。
--last
列出软件包时,以安装时间排序,最新的在上面。
-l, --list
列出软件包中的文件。
--provides
列出软件包提供的特性。
-R, --requires
列出软件包依赖的其他软件包。
--scripts
列出软件包自定义的小程序,他们是安装和卸载等等过程的一部分。
-s, --state
显示软件包中文件的状态 states (暗含了 -l)。每个文件的状态是 normal, not installed, 或 replaced 其中之一。
--triggers, --triggerscripts
显示软件包中包含的触发脚本,如果有的话。

校验选项

校验命令的一般形式是

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

校验软件包,是将已安装的文件的信息,与从软件包中获取的保存在 rpm 数据库中的有关文件的元数据进行比较。校验比较的内容有每个文件的大小,MD5 校验和,许可,类型,属主。任何不对的地方都回显示出来。如果软件包中文件未安装,例如在安装过程中使用 "--excludedocs" 选项跳过的文档,将被跳过。

软件包选择选项与软件包查询是相同的 (包括以说明文件作为参数)。其他独有的选项包括:

--nodeps
不校验软件包的依赖关系。
--nodigest
读取时不校验软件包或头部校验。
--nofiles
不校验文件的任何属性。
--noscripts
不执行 %verifyscript 小程序,如果有的话。
--nosignature
读取时不校验软件包或头部签名。
--nolinkto
--nomd5
--nosize
--nouser
--nogroup
--nomtime
--nomode
--nordev
不校验相应的文件属性。

输出是 8 个字符的字符串,可能的属性标记为:

c %config 配置文件
d %doc 文档
g %ghost 占位文档 (就是说,文件内容不包含在软件包有效内容里面)
l %license 许可文件
r %readme 说明文件

从头部开始,接下来是文件名,每 8 个字符表示将文件属性与数据库中记录的值进行一次比较的结果。一个单独的 "." (句点) 表示测试通过了,而一个单独的 "?" (问号) 表示测试可能无法进行 (例如,文件许可禁止了读权限)。最后,加重的字母表示相应的 --verify 测试失败了。

S file Size 大小不一致
M Mode 模式不一致 (包括许可和文件类型)
5 MD5 sum 校验和不一致
D Device 主从设备号不匹配
L readLink(2) 路径不匹配
U User 属主不一致
G Group 组属主不一致
T mTime 时间不一致

数字签名和校验

数字签名命令的一般形式是

rpm --import PUBKEY ...

rpm {--checksig} [--nosignature] [--nodigest]
PACKAGE_FILE ...

选项 --checksig 用来检测 PACKAGE_FILE 中所有的签名和摘要,保证打包的完整性和来源。注意在读取打包时总会检测签名,而
--checksig 在校验与某个打包关联的所有签名和摘要时有用。

没有公钥就无法校验数字签名。可以用 --import 来向 rpm 数据库添加 ASCII
文本化的公钥。每个导入的公钥都有一个头部,钥匙环的管理与软件包管理完全类似。例如,要显示所有已导入的公钥,使用:

rpm -qa gpg-pubkey*

已导入的公钥的细节,可以查询并显示。下面是有关 Redhat GPG/DSA 公钥的信息:

rpm -qi gpg-pubkey-db42a60e

最后,已导入的公钥可以像软件包一样被删除。下面是如何卸载 Redhat GPG/DSA 公钥:

rpm -e gpg-pubkey-db42a60e

签署软件包

rpm --addsign|--resign PACKAGE_FILE
...

选项 --addsign--resign 都可以为每个软件包 PACKAGE_FILE
生成并插入新的签名,替换任何已有的签名。存在两个选项,是由于历史的原因,现在它们的行为没有区别。

使用 GPG 来签署软件包

为使用 GPG 来签署软件包,必须配置 rpm 运行 GPG,并且要能找到包含合适密钥的钥匙环。默认情况下,rpm 使用与
GPG 相同的约定来查找钥匙环,也就是 $GNUPGHOME 环境变量。如果你的钥匙环不在 GPG 要求的位置,就必须配置宏
%_gpg_path 为要使用的 GPG 钥匙环的位置。

为了与老版本的 GPG, PGP 和 rpm 兼容,只应配置 V3 OpenPGP 签名的打包。可以使用 DSA 或者 RSA 校验算法,但是推荐用
DSA。

如果想签署自己创建的打包,还需要创建自己的公钥和私钥对 (参见 GPG 手册)。还需要配置 rpm 宏:

%_signature
签名类型。当前只支持 gpg 和 pgp。
%_gpg_name
用来签署打包的密钥的所有者 "用户" 的名称

例如,要使用 GPG 来签署打包,用户是 "John Doe <jdoe@foo.com>",钥匙环位置在
/etc/rpm/.gpg,使用可执行文件 /usr/bin/gpg,可以将这一段

%_signature gpg
%_gpg_path /etc/rpm/.gpg
%_gpg_name John Doe <jdoe@foo.com>
%_gpgbin /usr/bin/gpg

包含在宏配置文件中。对于系统范围的设置,使用 /etc/rpm/macros,对于个人设置,使用 ~/.rpmmacros

重建数据库选项

重建数据库的命令的一般形式是

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

使用 --initdb 来创建新的数据库,使用 --rebuilddb 来重建数据库索引,根据已安装的软件包头部。

显示配置

命令

rpm --showrc

将显示 rpm 使用的,在 rpmrcmacros 配置文件中定义的选项的值。

FTP/HTTP 选项

rpm 可以作为一个 FTP 和/或 HTTP 客户端,可以查询或安装互联网上的软件包包。要安装、升级和查询的软件包文件可以以 ftphttp 样式的 URL 指定:

ftp://USER:PASSWORD@HOST:PORT/path/to/package.rpm

如果忽略了 :PASSWORD 选项,将提示密码,每个用户名/主机组合提示一次。如果忽略了用户名和密码,将使用匿名 ftp。在所有情况下,都会使用被动 ftp (PSAV)。

rpm 允许在使用 ftp URL 时使用下面的选项:

--ftpproxy HOST
使用主机 HOST 作为所有 ftp 传输的代理服务器,允许用户通过代理系统防火墙访问 ftp。这个选项也可以用宏 %_ftpproxy 指定。
--ftpport PORT
连接到 ftp 代理服务器的 TCP PORT 端口,而不是默认的端口。这个选项也可以用宏 %_ftpport 指定。

rpm 允许在使用 http URL 时使用下面的选项:

--httpproxy HOST
使用主机 HOST 作为所有 http 传输的代理服务器,允许用户通过代理系统防火墙访问 http。这个选项也可以用宏 %_httpproxy 指定。
--httpport PORT
连接到 http 代理服务器的 TCP PORT 端口,而不是默认的端口。这个选项也可以用宏 %_httpport 指定。

LEGACY ISSUES

执行 rpmbuild

rpm 的构建模式,现在由 /usr/bin/rpmbuild 命令完成。尽管使用下面的 popt 别名提供的兼容性已经够用,但是不够完美;因此通过 popt 别名提供的构建兼容性将从 rpm 中移除。安装 rpmbuild 软件包,参见 rpmbuild(8) 中,有关过去记录在 rpm(8) 中的,rpm 构建模式的文档。

将下面的这些添加到 /etc/popt 中,如果想使用 rpm 命令行运行 rpmbuild的话:

rpm     exec --bp               rpmb -bp
rpm exec --bc rpmb -bc
rpm exec --bi rpmb -bi
rpm exec --bl rpmb -bl
rpm exec --ba rpmb -ba
rpm exec --bb rpmb -bb
rpm exec --bs rpmb -bs
rpm exec --tp rpmb -tp
rpm exec --tc rpmb -tc
rpm exec --ti rpmb -ti
rpm exec --tl rpmb -tl
rpm exec --ta rpmb -ta
rpm exec --tb rpmb -tb
rpm exec --ts rpmb -ts
rpm exec --rebuild rpmb --rebuild
rpm exec --recompile rpmb --recompile
rpm exec --clean rpmb --clean
rpm exec --rmsource rpmb --rmsource
rpm exec --rmspec rpmb --rmspec
rpm exec --target rpmb --target
rpm exec --short-circuit rpmb --short-circuit

FILES

rpmrc 配置文件

/usr/lib/rpm/rpmrc
/usr/lib/rpm/redhat/rpmrc
/etc/rpmrc
~/.rpmrc

Macro 宏定义文件

/usr/lib/rpm/macros
/usr/lib/rpm/redhat/macros
/etc/rpm/macros
~/.rpmmacros

Database 数据库

/var/lib/rpm/Basenames
/var/lib/rpm/Conflictname
/var/lib/rpm/Dirnames
/var/lib/rpm/Filemd5s
/var/lib/rpm/Group
/var/lib/rpm/Installtid
/var/lib/rpm/Name
/var/lib/rpm/Packages
/var/lib/rpm/Providename
/var/lib/rpm/Provideversion
/var/lib/rpm/Pubkeys
/var/lib/rpm/Removed
/var/lib/rpm/Requirename
/var/lib/rpm/Requireversion
/var/lib/rpm/Sha1header
/var/lib/rpm/Sigmd5
/var/lib/rpm/Triggername

Temporary 临时文件

/var/tmp/rpm*

rpm - RPM 软件包管理器的更多相关文章

  1. linux RPM(红帽软件包管理器)和Yum软件仓库中常见的命令

    RPM(红帽软件包管理器)常用命令 安装软件:rpm -ivh filename.rpm 升级软件:rpm -Uvh filename.rpm 卸载软件:rpm -e filename.rpm 查询软 ...

  2. yum---rpm软件包管理器

    yum命令是在Fedora和RedHat以及SUSE中基于rpm的软件包管理器,它可以使系统管理人员交互和自动化地更细与管理RPM软件包,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性 ...

  3. Linux不同发型版本(Debian REHL)与软件包管理器(RPM dpkg)的概念

    Linux的发行版本可以大体分为两类: Linux发行版 = Linux内核(类Unix内核) + Linux软件管理(package manager) 一类是商业公司维护的发行版本,以著名的Red ...

  4. yum(Fedora和RedHat以及SUSE中的Shell前端软件包管理器)命令详解

    yum官方网站:http://yum.baseurl.org/ Fedora对于yum的介绍:http://fedoraproject.org/wiki/Yum yum(全称为 Yellow dog ...

  5. yum软件包管理器

    Yum (Yellow dog Updater, Modified) 黄狗升级器是一个在 Fedora 中的字符前端软件包管理器.基于 RPM 包管理(介绍见RPM包及其管理),能够从指定的服务器自动 ...

  6. kali中的APT软件包处理工具(apt-get)、Debian软件包管理器(dpkg)、源代码压缩和Nessus安装实用指南

    写在前面的话 能看懂此博客的朋友,深信你有一定的Kali基础了. 使用APT软件包处理工具(apt-get).Debian软件包管理器(dpkg)来维护.升级和安装自定义及第三方应用程序 APT软件包 ...

  7. yum和apt-get 软件包管理器的用法及区别

    yum( Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器. 一般来说著名的linux系统基本上分两大类: 1.R ...

  8. Linux学习篇(二)-软件包管理器、Yum 软件仓库

    红帽软件包管理器 在红帽软件包管理器(rpm)公布之前,Linux 系统软件的安装只能采取"源码包"的方式安装,需要自行编译源码并解决许多依赖关系,所以软件的安装.升级.卸载的难度 ...

  9. Linux—软件包管理器yum安装详解

    yum( Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器. 基於RPM包管理,能够从指定的服务器自动下载RPM包 ...

随机推荐

  1. Vue自定义指令实现input限制输入正整数

    directive.js import Vue from 'vue' export default () => { Vue.directive('Int', { inserted: functi ...

  2. django之项目部署知识点

    一:项目部署的框架 nginx和uWSGI在生产服务器上进行的部署 二:什么是nginx? nginx是一个web服务器. 什么是web服务器? web服务器则主要是让客户可以通过浏览器进行访问,处理 ...

  3. uiautomator2 使用注意的地方

    uiautomator2项目地址:https://github.com/openatx/uiautomator2#basic-api-usages 下面记录一些自己在使用过程中的坑,仅供参考 1.通过 ...

  4. ES6基本用法

    es6是JS(JavaScript)的下一个版本. 新增了let命令,用来声明变量.变量在第一个花括号内有用,先声明后引用.不允许重复声明.存在暂时性死区. const声明一个只读的常量.一旦声明,常 ...

  5. Xib中用自动布局设置UIScrollView的ContenSize

    1. 在UIScrollView上拖一个UIView 2.设置UIScrollView上下左右约束为0,设置UIView上下左右约束为0,并且设置水平中线约束.那么可以把水平中线约束拖到对应视图,利用 ...

  6. C#语句,console,C#//,/**/

    ].

  7. H700关闭Direct PD Mapping

    Attached Enclosure doesn't support in controller's Direct mapping modePlease contact your system sup ...

  8. 一些比较好的blogs

    01Trie水过普通平衡树 MinMax容斥 Trie与可持久化Trie 圆方树 CDQ分治 网络流 有上下界的网络流 Mobius函数 组合数学盒子小球 dsu on tree VFK大爷的反演课件 ...

  9. 北风设计模式课程---状态模式State(对象行为型)

    北风设计模式课程---状态模式State(对象行为型) 一.总结 一句话总结: 状态模式 具体状态的行为在具体的状态类中就解决,不用交给外部做判断.实质是将多条件判断弄成了多个类,在不同的类中做判断 ...

  10. 写的一个双向链表,测试OK

    #include <stdio.h> #include <stdlib.h> #include <assert.h> typedef struct DoubleLi ...