rpm - RPM 软件包管理器
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 必须指定为 ftp 或 http
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。这个文件可以指定为一个 ftp 或 http 样式的
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 使用的,在 rpmrc 和 macros 配置文件中定义的选项的值。
FTP/HTTP 选项
rpm 可以作为一个 FTP 和/或 HTTP 客户端,可以查询或安装互联网上的软件包包。要安装、升级和查询的软件包文件可以以 ftp 或 http 样式的 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 软件包管理器的更多相关文章
- linux RPM(红帽软件包管理器)和Yum软件仓库中常见的命令
RPM(红帽软件包管理器)常用命令 安装软件:rpm -ivh filename.rpm 升级软件:rpm -Uvh filename.rpm 卸载软件:rpm -e filename.rpm 查询软 ...
- yum---rpm软件包管理器
yum命令是在Fedora和RedHat以及SUSE中基于rpm的软件包管理器,它可以使系统管理人员交互和自动化地更细与管理RPM软件包,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性 ...
- Linux不同发型版本(Debian REHL)与软件包管理器(RPM dpkg)的概念
Linux的发行版本可以大体分为两类: Linux发行版 = Linux内核(类Unix内核) + Linux软件管理(package manager) 一类是商业公司维护的发行版本,以著名的Red ...
- yum(Fedora和RedHat以及SUSE中的Shell前端软件包管理器)命令详解
yum官方网站:http://yum.baseurl.org/ Fedora对于yum的介绍:http://fedoraproject.org/wiki/Yum yum(全称为 Yellow dog ...
- yum软件包管理器
Yum (Yellow dog Updater, Modified) 黄狗升级器是一个在 Fedora 中的字符前端软件包管理器.基于 RPM 包管理(介绍见RPM包及其管理),能够从指定的服务器自动 ...
- kali中的APT软件包处理工具(apt-get)、Debian软件包管理器(dpkg)、源代码压缩和Nessus安装实用指南
写在前面的话 能看懂此博客的朋友,深信你有一定的Kali基础了. 使用APT软件包处理工具(apt-get).Debian软件包管理器(dpkg)来维护.升级和安装自定义及第三方应用程序 APT软件包 ...
- yum和apt-get 软件包管理器的用法及区别
yum( Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器. 一般来说著名的linux系统基本上分两大类: 1.R ...
- Linux学习篇(二)-软件包管理器、Yum 软件仓库
红帽软件包管理器 在红帽软件包管理器(rpm)公布之前,Linux 系统软件的安装只能采取"源码包"的方式安装,需要自行编译源码并解决许多依赖关系,所以软件的安装.升级.卸载的难度 ...
- Linux—软件包管理器yum安装详解
yum( Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器. 基於RPM包管理,能够从指定的服务器自动下载RPM包 ...
随机推荐
- Vue自定义指令实现input限制输入正整数
directive.js import Vue from 'vue' export default () => { Vue.directive('Int', { inserted: functi ...
- django之项目部署知识点
一:项目部署的框架 nginx和uWSGI在生产服务器上进行的部署 二:什么是nginx? nginx是一个web服务器. 什么是web服务器? web服务器则主要是让客户可以通过浏览器进行访问,处理 ...
- uiautomator2 使用注意的地方
uiautomator2项目地址:https://github.com/openatx/uiautomator2#basic-api-usages 下面记录一些自己在使用过程中的坑,仅供参考 1.通过 ...
- ES6基本用法
es6是JS(JavaScript)的下一个版本. 新增了let命令,用来声明变量.变量在第一个花括号内有用,先声明后引用.不允许重复声明.存在暂时性死区. const声明一个只读的常量.一旦声明,常 ...
- Xib中用自动布局设置UIScrollView的ContenSize
1. 在UIScrollView上拖一个UIView 2.设置UIScrollView上下左右约束为0,设置UIView上下左右约束为0,并且设置水平中线约束.那么可以把水平中线约束拖到对应视图,利用 ...
- C#语句,console,C#//,/**/
].
- H700关闭Direct PD Mapping
Attached Enclosure doesn't support in controller's Direct mapping modePlease contact your system sup ...
- 一些比较好的blogs
01Trie水过普通平衡树 MinMax容斥 Trie与可持久化Trie 圆方树 CDQ分治 网络流 有上下界的网络流 Mobius函数 组合数学盒子小球 dsu on tree VFK大爷的反演课件 ...
- 北风设计模式课程---状态模式State(对象行为型)
北风设计模式课程---状态模式State(对象行为型) 一.总结 一句话总结: 状态模式 具体状态的行为在具体的状态类中就解决,不用交给外部做判断.实质是将多条件判断弄成了多个类,在不同的类中做判断 ...
- 写的一个双向链表,测试OK
#include <stdio.h> #include <stdlib.h> #include <assert.h> typedef struct DoubleLi ...