文档章节

emerge 中文手册

greister
 greister
发布于 2016/09/25 08:44
字数 11854
阅读 29
收藏 0

emerge 中文手册

译者:金步国 版权声明

本文译者是一位开源理念的坚定支持者,所以本文虽然不是软件,但是遵照开源的精神发布。

无担保:本文译者不保证译文内容准确无误,亦不承担任何由于使用此文档所导致的损失。 自由使用:任何人都可以自由的阅读/链接/打印此文档,无需任何附加条件。 名誉权:任何人都可以自由的转载/引用/再创作此文档,但必须保留译者署名并注明出处。 其他作品

本文译者十分愿意与他人分享劳动成果,如果你对我的其他翻译作品或者技术文章有兴趣,可以在如下位置查看现有的作品集:

金步国作品集 [ http://www.jinbuguo.com/ ] 联系方式

由于译者水平有限,因此不能保证译文内容准确无误。如果你发现了译文中的错误(哪怕是错别字也好),请来信指出,任何提高译文质量的建议我都将虚心接纳。

Email(QQ):70171448在QQ邮箱 招聘

公司:君康人寿信息技术部 职位:Gentoo Linux SA, PostgreSQL DBA 坐标:上海 有意者请直接加我QQ70171448了解详情(加我时请注明"应聘")

EMERGE(1) Portage EMERGE(1)

名称 emerge - Portage 系统的命令行界面

语法 emerge [选项] [动作] [ebuild | tbz2file | file | @set | atom] ...

   emerge < --sync | --metadata | --version >

   emerge --info [atom]

   emerge --search somestring

   emerge --resume [ --pretend | --ask | --skipfirst ]

   emerge --help

描述 emerge是Portage系统的命令行接口,主要用于软件包的安装、升级、卸载。 emerge可以自动处理依赖关系、更新portage树、更新已安装的软件包。 emerge既可以处理源代码包也可以处理二进制包,还可以将编译好的二进制文件打包,以利于再次分发。

EBUILD, TBZ2, SET, ATOM emerge主要用于安装软件包。你可以使用下列几种安装方式之一:

   ebuild "ebuild"必须是一个有效的Portage包目录名(可以不带类别与版本信息),比如:"portage"或"python",
          当然也可以带上类别与版本信息,例如:"sys-apps/portage"或"=python-2.2.1-r2"。
          尾斜杠将被忽略,所以可以使用shell的文件名自动完成功能。
          "ebuild"还可以是一个实际的文件名,例如:/usr/portage/app-admin/python/python-2.2.1-r2.ebuild
          警告:对"emerge /path/to/ebuild"实现目前尚有缺陷,所以切勿使用!

   tbz2file
          "tbz2file"必须是一个由下列命令之一创建的 .tbz2 文件:
              ebuild <package>-<version>.ebuild package
              emerge --buildpkg [category/]<package>
              quickpkg /var/db/pkg/<category>/<package>

   file   "file"必须是一个被某个/某些软件包安装了的文件或目录。如果未使用绝对路径,则必须明确使用"./"或"../"开头。
          如果该目录被多个软件包安装,那么这些软件包都将被选中。
          可以使用portageq(1)命令查询文件或目录属于哪个/哪些软件包。

   set    "set"是一组特定软件包集合的代称。目前有三个set总是可用:selected, system, world 。
          selected 包含用户手动安装的软件包集合(/var/lib/portage/world)及其依赖的软件包集合(/var/lib/portage/world_sets)。
          system 表示系统正常运行所必须的一组软件包(基本系统/最小系统)。
          world 表示 selected 与 system 的合集[参见尾部的"文件"小节]。
          其他可用的set取决于系统的配置,默认的配置位于 /usr/share/portage/config/sets 目录中。
          用户自定义的set文件可以存放在 /etc/portage/sets/ 目录中(参见 portage(5))。
          提示:set经常和 --update 动作一起使用。若要用于安装动作,则必须明确使用"@"作为前缀,以示区别。
          使用 --list-sets 动作可以列出所有可用的set名称。

   atom   "atom"定义了你想要安装的软件包的版本范围。atom 的详细语法请参见portage(5)手册页。例如:
              >=dev-lang/python-2.2.1-r2  表示大于等于 2.2.1-r2 的Python最新可用版本;
              <dev-lang/python-2.0  表示小于 2.0 的Python最新可用版本;
          需要注意的是,很多shell里的'<'与'='之类的符号需要转义,所以你应该在atom两边使用引号以避免麻烦。
          你还可以通过在结尾附加一个冒号(:)来指定 SLOT ,例如:x11-libs/qt:3

动作 无动作 如果没有指定任何动作,那么就表示将软件包的最新可用版本合并(安装或升级)到系统中,并满足相应的依赖关系。 参数可以是: atoms, sets, files, ebuilds, tbz2s 。[注意]对于 tbz2 需要同时使用 --usepkg 选项。 Note that you need to use the --usepkg option if you want to install a tbz2.
被合并的软件包将被添加到world文件中(/var/lib/portage/world),也就意味着在未来升级的时候将会被处理。

   --check-news
          扫描软件仓库中所有未读的 GLEP 42 新闻,并显示出总条数。
          详见: http://www.gentoo.org/proj/en/glep/glep-0042.html

   --clean
          通过检查已安装的软件包和移除旧的软件包来清理系统。具体动作如下:
          检查每一个已安装的软件包,并通过slot分隔已安装的版本;
          然后仅保留每个slot内最后安装的版本,同时清除所有先前安装的版本。而那些没有被slot分隔的包则不会被清除。
          注意:最后安装的版本未必是最高版本。

   --config
          在软件包被安装或更新后,执行所需的额外动作。比如创建必要的配置文件、初始化之类的动作。

   --depclean (-c)
          通过清除不被任何已明确安装的包所依赖的包来清理系统。
          该动作从 world 集合开始创建完整的依赖关系树,并与所有已安装的包进行比较,
          然后删除那些虽然已经安装、但却在依赖关系树之外的包(参见 --with-bdeps 以了解非严格必须的编译时依赖)。
          所有属于 world 集合的包总会被保留。
          可以使用"emerge --noreplace <atom>"手动将<atom>添加到world集合。
          出于安全因素,depclean将仅仅删除那些确实不被任何其它已安装的软件包所依赖的包,
          所以,通常有必要在depclean前先进行一下"emerge --update --newuse --deep @world"操作。
          由于 --depclean 可能会破坏连接层的依赖(特别是未使用 --depclean-lib-check 的时候),
          因此可能还需要再使用 revdep-rebuild(1) 之类的工具来修复破损的依赖。

          警告: 建议新手同时使用 --pretend 或 --ask 来预览一下究竟有哪些包将被卸载,以避免失误。
          注意: 那些列在package.provided(参见portage(5))中的包,即使属于 world 集合,也可能会被删除。

          --depclean 可以看作能够自动检查依赖关系的 --unmerge ,
          当给出一个或多个 atom 时,它将会同时卸载那些不存在任何反向依赖的包。
          可以同时使用 --depclean 和 --verbose 来查看反向依赖关系。

   --deselect [ y | n ]
          从world文件中(/var/lib/portage/world)移除指定的一个或多个 atom/set 。
          --depclean, --prune, --unmerge 隐含了此动作。
          而 --deselect=n 则表示禁止从world文件中移除指定的一个或多个 atom/set 。

   --help (-h)
          显示帮助信息。内置的帮助信息比man页更新的更及时,但不如man页详细。

   --info 显示那些将在bug报告中包含的信息(主要是在执行emerge时将被导出(export)到ebuild.sh的portage变量)。
          目的是帮助开发者了解系统环境以便于查找故障。在提交bug报告时务必包含这些内容。
          同时使用 --verbose 选项可以显示更详细的信息(所有make.{conf,globals,defaults}中的变量和所有环境变量)。

   --list-sets
          列出所有可用的软件包集合(set)

   --metadata
          将软件包的元数据缓存从 ${PORTDIR}/metadata/md5-cache/ 传输到 /var/cache/edb/dep/ 中,以加速软件包信息的查找。
          这个操作通常在"emerge --sync"动作的最后自动完成。
          [提示]除非你同时使用了 --regen ,否则 PORTDIR_OVERLAY 中列出的 overlay 的元数据不会被缓存。
          对于 portage >=2.1.5 版本来说,这个动作完全没有必要,除非你在make.conf(5)中设置了 FEATURES="metadata-transfer"

   --prune (-P)
          仅保留软件包的最高版本(删除所有低版本)。
          可以使用 --verbose 来显示反向依赖,或者使用 --nodeps 来忽略所有依赖关系。
          警告: 该操作可能会删除 /var/lib/portage/world 中的软件包!但可以用 --depclean 替代 --prune 以避免这个问题。

   --regen
          检查并更新portage树中所有ebuild的依赖关系缓存。这些缓存被用于加速搜索和创建依赖关系树。
          不推荐rsync用户使用,因为rsync会使用服务器端的缓存来更新本地缓存。
          如果你不知道'rsync用户'与其他种类的用户有什么差别,那么你就是一个'rsync用户':)
          rsync用户只要简单的使用"emerge --sync"即可更新本地缓存。
          在更新portage之后,rsync用户可以方便的使用"emerge --metadata"重建依赖关系缓存。
          可以使用 --jobs 和 --load-average 选项执行并行 --regen 操作。
          还可以使用egencache(1)生成可分发给他人使用的依赖关系缓存。

   --resume(-r)
          使用相同的命令行选项与参数,重复最近一次因为错误而中断的操作(可以添加额外的选项,但不能添加atom/set参数)。
          需要注意的是,这个操作在出错时仅返回一个错误代码。
          如果没有任何事情可做,那么portage将仅返回一个成功代码,并输出一条成功的信息。
          除非被中断的操作完成,或者被另一个中断取代,否则中断记录将一直存在。
          最多可以保存两条中断记录,当较新的记录完成后,可以再次使用 --resume 来继续完成较旧的记录。
          中断记录保存在 /var/cache/edb/mtimedb 文件中,且可以通过"emaint --fix cleanresume"命令删除(参见emaint(1))。

   --search (-s)
          在本地portage树中搜索软件包名称与指定字符串匹配的包。
          默认进行大小写无关的简单匹配,但是可以通过在字符串前加个百分号(%)进行正则表达式匹配。例如:
              emerge --search "office"   列出所有软件包名称中包含"office"字符串的包
              emerge --search "%^kde"    列出所有软件包名称以"kde"开始的包
              emerge --search "%gcc$"    列出所有软件包名称以"gcc"结尾的包
          另外,可以通过在字符串前加个'@'符号将分类(category)信息包含进来。例如:
              emerge --search  "%@^dev-java.*jdk"   列出所有可用的Java JDK

   --searchdesc (-S)
          在本地portage树中搜索软件包描述与指定字符串匹配的包。
          需要注意的是,这种匹配是正则表达式匹配。

   --sync 遵照sync-type与sync-uri属性的指示(/etc/portage/repos.conf),更新本地Portage树。详见portage(5)手册。
          PORTAGE_SYNC_STALE 变量用于设置多少天没运行"emerge --sync"就发出警告。
          警告:除了 distfiles, local, packages 目录,你对本地Portage树的任何更改都将在更新时被撤销。
          提示:'emerge-webrsync'程序可以下载打包好的Portage快照,并进行更新,这对于首次安装Portage树很有用。

   --unmerge (-C)
          删除所有匹配的软件包,且不检查依赖关系,因此这个动作可能会删除关键的包!其参数只能使用 atom/ebuild 两种。
          可以将 --depclean 或 --prune 视为可以检查依赖关系的 --unmerge 版本。

   --version (-V)
          显示emerge的版本信息。

选项 --accept-properties=ACCEPT_PROPERTIES 临时追加ACCEPT_PROPERTIES变量的值,也就是这里指定的值将被追加到原有的变量之后。 特殊标记"-"可以完全丢弃现有的值,从头开始设置新值。 更多ACCEPT_PROPERTIES的信息请参见下面"被屏蔽的包"小节和make.conf(5)手册页。 一个典型的用法是使用 --accept-properties=-interactive 临时屏蔽交互式软件包, 对于默认设置来说,这相当于将ACCEPT_PROPERTIES的值设为" -interactive"

   --accept-restrict=ACCEPT_RESTRICT
          临时追加ACCEPT_RESTRICT变量的值,也就是这里指定的值将被追加到原有的变量之后。
          特殊标记"-*"可以完全丢弃现有的值,从头开始设置新值。
          更多ACCEPT_RESTRICT的信息请参见下面"被屏蔽的包"小节和make.conf(5)手册页。
          一个典型的用法是使用 --accept-restrict=-bindist 临时屏蔽禁止二进制再分发的软件包,
          对于默认设置来说,这相当于将ACCEPT_RESTRICT的值设为"* -bindist"

   --alphabetical
          在显示USE之类标记的时候,同时显示启用和禁用列表,并按照字母顺序排序。
          比如USE="dar -bar -foo"将被显示为USE="-bar dar -foo"

   --ask (-a)
          在执行实际操作前,先显示将发生什么事件(但对于 --sync 来说是显示服务器信息),然后询问是继续还是取消?
          使用 --ask 比先使用 --pretend 再实际执行相同的命令更有效率,因为依赖关系只被计算一次。
          警告: 在提示信息后直接敲回车(没有任何其他输入),表示接受第一个选项。
          由于输入缓存的存在,如果在下一个提示信息出现前键入了回车,将会在提示信息出现的时候自动接受第一个选项!
          可以使用 --ask-enter-invalid 选项来将一个单独的回车视为无效输入,从而避免这个问题。

   --ask-enter-invalid
          与 --ask 选项联用时,将一个单独的回车视为无效输入。从而避免意外的自动接受第一个选项。
          设置此项主要是为了用于make.conf(5)中的EMERGE_DEFAULT_OPTS变量。

   --autounmask [ y | n ]
          为了满足必要的依赖关系而自动unmask软件包以及生成package.use设置。此选项默认为开启。
          如果必须更改配置,那么emerge将会立即退出并在列表结尾显示必须的变更。
          你可以将必要的变更写进配置文件,或者使用 --autounmask-write 选项。
          可以使用make.conf(5)中的EMERGE_DEFAULT_OPTS变量来默认关闭此选项。

   --autounmask-unrestricted-atoms [ y | n ]
          开启 --autounmask 时,对 keyword 和 mask 的变更默认使用"="限制软件包的版本。
          开启此项后则改为使用">="限制软件包的版本。
          提示:对 USE 和 license 的变更默认使用的就是">="。

   --autounmask-keep-masks [ y | n ]
          与 --autounmask 联用,表示不对 package.unmask 和 keyword 做任何修改。
          这样,除非手动修改配置,否则不会自动解决依赖关系。

   --autounmask-write [ y | n ]
          与 --autounmask 联用,表示将必要的配置变更写进相应的配置文件(需要符合CONFIG_PROTECT和 --ask 选项的要求)。
          如果被修改的 package.* 是一个文件,变更将被追加到尾部;
          如果被修改的 package.* 是一个目录,变更将被追加到最末的文件(字典顺序)。
          这样可以确保变更能够生效(覆盖掉旧有的配置)。

   --backtrack=COUNT
          指定一个计算依赖关系失败(例如包冲突所致)之后的回溯秒数,默认值是"10"。

   --binpkg-respect-use [ y | n ]
          在USE标记与当前的配置不一致的情况下,让emerge忽略二进制包(默认值是'n')

   --buildpkg [ y | n ] (-b short option)
          让emerge在安装软件包的同时再额外创建二进制包(保存在PKGDIR目录中),详见make.conf(5)手册页
          这对于Gentoo开发者和维护多套Gentoo系统的管理员很有用处。
          因为只需要一次编译,就可以将生成的tbz2在其它地方安装(还可以用于灾难恢复)。
          对于已安装的包,可以使用quickpkg(1)程序从现有系统中创建tbz2文件。

   --buildpkg-exclude ATOMS
          一个空格分隔的 atom 列表,禁止对列表内的软件包创建二进制包。

   --buildpkgonly (-B)
          仅创建二进制包而不实际安装它们。警告:所有编译时依赖的包必须已经安装在系统中。

   --changed-use
          包含哪些在安装之后改变了USE标记的软件包。该选项隐含了 --selective 选项。
          与 --newuse 不同之处在于,此选项并不重新安装那些原本就未开启的USE标记发生了变化(增加或删除)的软件包。
          注意:此选项会无视"test"标记的变化,因为专门绑定到了FEATURES="test"(参见make.conf(5)手册页)中。

   --changelog (-l)
          与 --pretend 一起使用的时候,将会同时显示需要升级的软件包的ChangeLog项。

   --color < y | n >
          启用/禁用彩色输出。该选项会覆盖NOCOLOR(参见make.conf(5))的设置。
          如果stdout是一个tty,那么默认开启彩色输出,否则默认默认禁止彩色输出。

   --columns
          与 --pretend 一起使用可以让软件包的名称、新/旧版本号按照表格对齐显示,以便于复制和粘贴。

   --complete-graph [ y | n ]
          让emerge能够从world集合内部开始计算所有软件包的完整依赖关系。
          开启此选项后,如果将要执行的操作将会破坏现有系统的任何依赖关系,emerge将会退出。
          和 --deep 一样,该选项也会显著增加计算依赖关系所消耗的时间。
          和 --deep 不同之处在于,开启该选项并不比关闭该选项需要升级更多的包。
          与 --with-bdeps=y 联用可以将编译时依赖关系也考虑进来,从而让依赖关系树更加完整。

   --complete-graph-if-new-use < y | n >
          如果一个已安装软件包的 USE 或 IUSE 发生变化,那么就触发 --complete-graph 行为。该选项默认为开启。

   --complete-graph-if-new-ver < y | n >
          如果一个已安装软件包的版本发生变化,那么就触发 --complete-graph 行为。该选项默认为开启。

   --config-root=DIR
          设置 PORTAGE_CONFIGROOT 环境变量的值。参见"环境变量"小节关于 PORTAGE_CONFIGROOT 的描述。

   --debug (-d)
          以调试模式运行。在此模式下,将会带 -x 选项运行bash编译环境,调试信息将会出现在stdout上。
          此选项可用于发现bash语法错误,也可以用于查看详细的依赖关系信息和编译过程。

   --deep [DEPTH] (-D)
          计算完整的软件包依赖关系树,而不仅仅是直接依赖关系。DEPTH 可以用于指定依赖深度。
          比如,更新软件包时连同该包间接依赖的库一同升级,尽管这些库并不被该包直接依赖。
          参见 --with-bdeps 以了解编译时依赖的行为。

   --depclean-lib-check [ y | n ]
          在执行 --depclean 和 --prune 动作时,将一并考虑连接库层次的依赖关系。该选项默认为开启。
          如果在make.conf(5)中设置了 FEATURES="preserve-libs",并且也未移除指定软件包的"preserve-libs"特性,
          那么此选项将被忽略,因为任何被连接的库都会被保留。

   --digest
          禁止显示摘要错误警告。
          "repoman manifest"命令是生成manifest的首选方法,并且能够进行批量处理(参见repoman(1)手册页)。

   --dynamic-deps < y | n >
          在计算依赖关系时,将当前系统已安装的软件包替换为Portage树中相应的尚未安装的软件包。
          这会导致当Portage树被更新后,依赖关系随之发生变化。该选项默认为开启。
          警告:如果你打算关闭此选项,那么请首选运行 fixpackages(1) 以获得最佳结果。
          fixpackages(1)命令实际上连续执行了"emaint --fix moveinst"和"emaint --fix  movebin"两个不同的动作。

   --emptytree (-e)
          在计算依赖关系时,假定系统中没有安装任何软件包。
          这样在emerge某个软件包时,将会顺着依赖关系从最低层开始,按照新USE标记重新安装或升级每一个包。
          当和 --pretend 一起使用的时候可以用来查看最完整的依赖关系,并检查将要执行的动作是否是你想要的。

   --exclude ATOMS
          该选项的参数是一个空格分隔的 atom 列表,表示禁止安装任何与其中的atom匹配的软件包。

   --fail-clean [ y | n ]
          用于编译失败后清理临时文件。此选项在你将 PORTAGE_TMPDIR 放在 tmpfs 上时特别有用。
          开启此选项后,你也许应该同时启用PORT_LOGDIR(参见make.conf(5))来保存编译日志。

   --fetchonly (-f)
          不做任何编译,只是基于USE标记的设置,下载所需的源代码。

   --fetch-all-uri (-F)
          与 --fetchonly 类似,但不考虑USE标记,因此将会下载所有源代码(即使按照当前的USE标记并不需要)。

   --getbinpkg [ y | n ] (-g)
          使用PORTAGE_BINHOST(参见make.conf(5))变量定义的服务器和位置,下载每个二进制包信息,并用于创建依赖关系树。
          该选项隐含了 --usepkg 选项(如果仅用于二进制安装,那么应该使用 -gK )。

   --getbinpkgonly [ y | n ] (-G)
          与 --getbinpkg 类似,不同之处在于:从远程服务器获得的二进制包信息优先于本地的二进制包信息。

   --ignore-default-opts
          忽略 EMERGE_DEFAULT_OPTS(参见make.conf(5)) 的设置。

   --ignore-built-slot-operator-deps < y | n >
          编译时忽略 slot/sub-slot := 操作符部分的依赖关系。此选项仅用于调试目的。

   -j [JOBS], --jobs[=JOBS]
          指定并行编译的软件包数量。如果开启了此选项,但没有给出JOBS(正整数),那么emerge将不会限制并行编译的数量。
          参见 --load-average 选项以获得更多信息。
          与 --quiet-build 选项类似,开启 --jobs 选项也会导致所有的编译输出都被重定向到编译日志中。
          注意:交互式安装的包将会自动强制 --jobs=1 ,但是可以通过 --accept-properties=-interactive 临时绕开。

   --keep-going [ y | n ]
          在遇到错误后并不中断,而是尽可能继续运行,直到实在不能继续为止。
          也就是在遇到错误后,重新计算剩余包的依赖关系,并将不满足依赖关系的包丢弃。
          参见相关的 --skipfirst 选项以获得更多信息。

   --load-average [LOAD]
          当平均负载不少于LOAD(浮点数)且有至少一个软件包正在编译时,不再启动新的编译任务。
          如果LOAD值未指定,那么将使用前次的设定值。此选项一般和 --jobs 联用,以避免系统过载。
          参见 make(1) 以了解类似的选项(可以通过make.conf(5)中的MAKEOPTS变量设置)。

   --misspell-suggestions < y | n >
          对拼写错误进行建议。默认情况下,如果指定的软件包不存在,emerge将会显示一列名称类似的软件包。
          此选项默认开启。可以使用 EMERGE_DEFAULT_OPTS 变量默认关闭此特性。

   --newuse (-N)
          包含那些安装之后USE标记又发生了变化的软件包。此选项隐含了 --selective 选项。
          USE标记的变化包括:添加,删除,开启,关闭。USE标记既受 profile 的影响,也受 package.use 的影响。
          如果你想跳过处理那些IUSE标记发生变化的软件包,参见 --changed-use 选项。
          如果你想跳过某些特定的软件包,参见 --exclude 选项。
          注意:此选项不关心"test"标记的变化,因为它被绑定到了 FEATURES="test"(参见make.conf(5))变量中。

   --noconfmem
          默认情况下Portage会持续跟踪 CONFIG_PROTECT 目录中的文件,并且不会自动合并同一个文件,
          但这样做会导致在不慎删除新配置文件后,无法更新原有配置。
          使用此选项后,Portage将不管 CONFIG_PROTECT 目录中是否存在同名文件,总是自动合并新配置文件。

   --nodeps (-O)
          合并指定的软件包,但是不包括依赖关系。当依赖关系不能被满足时该操作可能会失败。

   --noreplace (-n)
          不重新安装系统中已经安装的软件包。如果不使用此选项,所有命令行上的软件包都将被重新安装。
          注意:Portage默认并不重新安装被依赖的包。
          此选项可以用于更新 world 文件而无需重新编译已安装的软件包。

   --nospinner
          即使终端类型是TTY也禁止会话的spinner

   --usepkg-exclude ATOMS
          一个空格分隔的软件包名字或 slot atom 列表。emerge将会忽略与之匹配的二进制包。

   --rebuild-exclude ATOMS
          一个空格分隔的软件包名字或 slot atom 列表。
          列表中的软件包,即使 --rebuild 选项要求其重新编译,emerge也将跳过(不重新编译)。

   --rebuild-ignore ATOMS
          一个空格分隔的软件包名字或 slot atom 列表。
          那些依赖于列表中的软件包的软件包,即使 --rebuild 选项要求其重新编译,emerge也将跳过(不重新编译)。

   --oneshot (-1)
          正常合并指定的包,但是并不将其添加到world文件中。这样,除非被其他包依赖而被动升级,否则不会升级。

   --onlydeps (-o)
          只合并软件包所依赖的包,而不合并其自身。

   --package-moves [ y | n ]
          在需要时移动软件包。默认开启。通常会在执行完 --sync 动作之后立即进行软件包的移动。
          警告:切勿关闭此选项,除非你知道自己在做什么。

   --pkg-format
          指定将要创建的二进制包的格式,目前仅支持 tar 和 rpm 以及他们的组合。

   --prefix=DIR
          设置 EPREFIX 环境变量的值。

   --pretend (-p)
          不执行实际的合并操作,而只显示将发生将发生的动作。推荐在合并新软件包时先用 --pretend 检查一下。
          输出标记说明:
          N   新安装(此包目前尚未被安装)
          S   安装新SLOT版本(与原有版本并行)
          U   升级(将原有版本升级到一个新版本)
          D   降级(将原有版本降级到一个更好的旧版本)
          r   重装(由于某些原因(通常是由于slot/sub-slot)必须重新安装)
          R   重装(重新编译一个相同的版本)
          F   限制源码下载(必须手动下载)
          f   限制源码下载(已经下载)
          I   交互式安装(需要用户输入)
          B   被已安装的包屏蔽(冲突尚未解决)
          b   被已安装的包屏蔽(可以自动解决冲突)

   --quiet [ y | n ] (-q)
          以安静模式运行,portage的输出会简洁许多。

   --quiet-build [ y | n ]
          将所有的编译输出重定向到一个单独的日志文件,而不是在stdout上显示出来。
          如果某个软件包出现编译错误,那么编译日志的内容将会自动在stdout上显示出来(除非使用了 --quiet-fail 选项)。
          如果连续出现多个软件包编译错误(例如开启了 --keep-going 或 --jobs),那么将会显示日志文件的路径(而不是内容)。
          注意:交互式安装的软件包将强制显示所有编译输出,但可以通过 --accept-properties=-interactive 临时屏蔽。

   --quiet-fail [ y | n ]
          当编译输出由于 --jobs, --quiet, --quiet-build 被隐藏时,不在stdout上显示编译日志。
          而仅仅显示最终的"die"消息和日志文件的路径。

   --quiet-repo-display
          不在软件包合并列表中显示 ::repository 输出,而是显示表明其来源的数字。

   --quiet-unmerge-warn
          禁止显示 --unmerge 动作之前的警告信息。此选项主要是为了用于 EMERGE_DEFAULT_OPTS 变量(参见make.conf(5))。

   --rebuild-if-new-slot [ y | n ]
          当 slot/sub-slot := 操作符的依赖关系被一个更新的slot满足的时候,自动重新编译和安装软件包。
          这样,位于同一slot中的旧版本软件包将可以尽快的被 --depclean 动作卸载。
          该选项仅对那些指定了 slot/sub-slot := 依赖关系的软件包有意义,且仅从 EAPI 5 开始支持此特性。
          因为此选项需要检查反向依赖,所以它会在安装一个新的slot之后开启 --complete-graph 模式。
          此选项默认为开启。
          注意:如果你打算跳过包括slot操作依赖在内的所有重新安装动作,请使用 --ignore-built-slot-operator-deps=y 

   --rebuild-if-new-rev [ y | n ]
          如果某个软件包编译时所依赖的包需要从源代码安装(所需的精确版本尚未安装在系统中),那么就重新编译这个软件包。
          注意:精确版本的含义是主版本和修订版本一起考虑

   --rebuild-if-new-ver [ y | n ]
          如果某个软件包编译时所依赖的包需要从源代码安装(所需的主版本尚未安装在系统中),那么就重新编译这个软件包。
          注意:主版本相同即视为已安装,修订版本会被忽略

   --rebuild-if-unbuilt [ y | n ]
          如果某个软件包编译时所依赖的包需要从源代码安装(尚未安装在系统中),那么就重新编译这个软件包。
          注意:安装了任意版本即视为已安装,主版本和修订版本都会被忽略

   --rebuilt-binaries [ y | n ]
          用新编译的二进制软件包替换掉系统上对应的已安装的软件包。
          是否"新"的标准是根据二进制包元数据里的 BUILD_TIME 进行判断的。
          当对二进制包(--usepkgonly 或 --getbinpkgonly)使用 --update 和 --deep 时,此选项默认开启。

   --rebuilt-binaries-timestamp=TIMESTAMP
          此选项仅在使用了 --rebuilt-binaries 时才有意义。
          仅在二进制包的 BUILD_TIME 大于给定的 TIMESTAMP 同时又大于系统中已安装软件包的 BUILD_TIME 时,
          才会被考虑应用于"rebuilt-binaries"逻辑。

   --reinstall changed-use
          这是 --changed-use 的别名

   --reinstall-atoms ATOMS
          一个空格分隔的软件包名字或 slot atom 列表。emerge将会把列表中的软件包视为尚未安装,从而可以重新安装它们。

   --root=DIR
          设置 ROOT 环境变量的值

   --root-deps[=rdeps]
          如果未给出参数,那么连同ROOT编译时所依赖的包将被一起安装到ROOT目录(而不是"/")。
          如果给出了rdeps参数,那么将丢弃ROOT编译时所依赖的包,而只将指定的包自身安装到ROOT目录。
          此选项仅在与ROOT环境变量或 --root 一起使用时才有意义,否则切勿使用!
          此选项对支持 HDEPEND 的 EAPI 也没有效果。EAPI 5 使用新特性 HDEPEND 来调整安装到"/" 和 ROOT 的内容。

   --select [ y | n ] (-w)
          将制定的软件包添加到 world 集合(与 --oneshot 正好相反)。
          当你在 EMERGE_DEFAULT_OPTS 中设置了 --oneshot 之后,此选项就有了用武之地。

   --selective [ y | n ]
          此选项与 --noreplace 类似。
          对于隐含了 --selective 的选项(--changed-use, --newuse, --noreplace, --update)来说,
          可以使用 --selective=n 来强制禁止 --selective 行为。

   --skipfirst
          仅在与 --resume 联用时才有意义。表示移除恢复列表中的第一个包,然后重新计算剩余软件包的依赖关系,
          并自动丢弃所有不满足依赖关系或者被屏蔽的包。另请参见相关的 --keep-going 选项。

   --tree (-t)
          以缩进方式为给定的目标显示依赖关系树。该选项在和 --emptytree 或 --update 和 --deep 一起使用时才有意义。

   --unordered-display
          默认情况下,将按照安装顺序排列软件包列表。
          当此选项和 --tree 一起使用时,此排序规则将被取消,这有助于展示更具可读性的依赖关系列表。

   --update (-u)
          将软件包升级到最佳的版本。由于最新版本通常位于测试分枝或被屏蔽,所以"最佳的版本"不一定是最高版本。
          atom参数将被"贪婪匹配",因此非特定的atom可能会匹配多个slot中的不同版本。

   --use-ebuild-visibility [ y | n ]
          对于已编译的软件包,使用未编译的ebuild元数据。

   --useoldpkg-atoms ATOMS
          一个空格分隔的软件包名字或 slot atom 列表。
          对于列表中的软件包,emerge将会优先选择二进制包,而不是较新的未编译的包。

   --usepkg [ y | n ] (-k)
          尽可能使用二进制包(来自 $PKGDIR),这样可以避免那些耗时很长的编译过程。在从CD安装时这个选项很有用处。
          你可以先将 PKGDIR=/mnt/cdrom/packages 设为全局变量,然后使用此选项从CD上抓取已编译好的包并满足依赖关系。

   --usepkgonly [ y | n ] (-K)
          仅使用二进制包(来自 $PKGDIR)。这样所有的包(包括依赖关系)都必须能直接获取,否则emerge将会退出。
          Portage在计算依赖关系时并不使用 $PORTDIR ,所以,所有的屏蔽信息都将被忽略。

   --verbose [ y | n ] (-v)
          以冗余模式运行,也就是在运行的同时输出info级别的消息,并且在和 --pretend 联用时显示每个包的USE标记。
          下面的修饰符用于表示相应USE标记状态:
          修饰符   位置      含义
          ──────────────────────────────────────────────────────────────
          -        前缀   已关闭(已禁用或已删除)
          *        后缀   转换到开启状态/转换自开启状态
          %        后缀   新添加的标记/新删除的标记
          ()       包围   强制的, 已屏蔽的, 已删除的
          {}       包围   由FEATURES变量所决定

   --verbose-conflicts
          显示更详细的slot冲突信息。注意:开启此项后,在某些情况下可能会导致显示数百个软件包的slot冲突信息。

   --verbose-main-repo-display
          即使对于主软件库,也显示 ::repository 信息。

   --with-bdeps < y | n >
          在计算依赖关系时,连同编译时依赖(非严格必须)一起考虑。
          安装时的默认值是"n",也就是不安装编译时依赖。而对于 --depclean 的默认值是"y",也就是不卸载编译时依赖。
          这个设置可以添加到 EMERGE_DEFAULT_OPTS (参见make.conf(5))变量中,并可以随后在命令行上被改写。

环境变量 EPREFIX = [path] EPREFIX 用于指定目标的前缀(安装目录),可以在make.conf(5)文件中设置。 但是其值也可以通过 --prefix 选项进行更改(覆盖make.conf(5)文件中的设置)。 默认值是当前portage的安装目录(通常是"/usr")。

   ROOT = [path]
          ROOT 用于指定目标的根文件系统路径,可以在make.conf(5)文件中设置。
          但是其值也可以通过 --root 选项进行更改(覆盖make.conf(5)文件中的设置)。
          默认值是"/"。

   PORTAGE_CONFIGROOT = [path]
          PORTAGE_CONFIGROOT 用于指定存放各种portage配置文件的根目录(参见"文件"小节以查看配置文件列表)。
          但是其值也可以通过 --config-root 选项进行更改(覆盖make.conf(5)文件中的设置)。
          默认值是"/"。

输出 当使用 --pretend 和 --verbose 选项时,输出的内容可能会有些难懂,下面就是对这些缩写的解释。

   [blocks B ] app-text/dos2unix ("app-text/dos2unix" is blocking app-text/hd2u-0.8.0)
          dos2unix 阻止了 hd2u 的安装。如果两个包会互相覆盖对方的文件,那么就将互相阻挡,否则将会损坏系统。
          互相阻挡的包不应该被同时安装,因为它们通常都提供相同的功能。

   [ebuild N ] app-games/qstat-25c
          qstat 是一个新软件包,将被新安装到系统中。

   [ebuild NS ] dev-libs/glib-2.4.7
          系统中已经安装了一个 glibc 版本,但是有一个属于不同SLOT的"新"版本可用。

   [ebuild R ] sys-apps/sed-4.0.5
          sed 4.0.5 已经安装了,但是portage将会重新安装此软件包。

   [ebuild F ] media-video/realplayer-8-r6
          需要手动下载 realplayer 的源代码。
          在下载源代码失败时,portage 将会停止安装并且提示如何下载所需源码。

   [ebuild f ] media-video/realplayer-8-r6
          realplayer 的源代码已经下载到系统中了。

   [ebuild U ] net-fs/samba-2.2.8_pre1 [2.2.7a]
          samba 2.2.7a 已经安装在系统中了,但将被升级到 2.2.8_pre1 版本。

   [ebuild UD] media-libs/libgd-1.8.4 [2.0.11]
          libgd 2.0.11 已经安装在系统中了,但将被降级到 1.8.4 版本。
          原因之一是,新版本存在缺陷(安全漏洞、导致系统损坏等),且尚未修复,暂时被屏蔽了。
          原因之二是,某个你要安装的软件包依赖于旧版本,为了安装成功,必须降级。
          在本例中,因为 libgd 2.x 与 libgd 1.x 并不兼容,所以必须先降级到 1.8.4 版本才能继续安装。

   [ebuild U ] sys-devel/distcc-2.16 [2.13-r1] USE="ipv6* -gtk -qt%"
          显示USE标记对编译的影响。在本例中,启用了 ipv6 支持但是禁止了 gtk 和 qt 支持。
          "ipv6"后的星号(*)表示在上一次安装该软件包时,ipv6支持是被关闭的。
          "qt"后的百分号(%)表示在上一次安装该软件包时,qt支持是被开启的。
          注意:对于那些在两次安装中保持不变的USE标记,将只被简单的显示,而不带任何结尾标记。
          USE标记只在使用了 --pretend 或 --verbose 时才会显示。而使用 --quiet 将会阻止显示上述信息。

   [ebuild r U ] dev-libs/icu-50.1.1:0/50.1.1 [50.1-r2:0/50.1]
          icu 50.1-r2 已经被安装在系统中了,并且将被升级到 50.1.1 版本。
          "r"符号表示icu软件包的sub-slot变化(在本例中是从50.1到50.1.1),
          将会导致有slot-operator依赖于它的软件包(如下例所示的 libxml2)要被重新编译。

   [ebuild rR ] dev-libs/libxml2-2.9.0-r1:2 USE="icu"
          libxml2 2.9.0-r1 已经被安装在系统中了,但是为了满足slot-operator依赖,将被重新编译安装。
          如上例所示,是因为其所依赖的icu软件包的sub-slot发生了变化。

   [ebuild U *] sys-apps/portage-2.2.0_alpha6 [2.1.9.25]
          portage 2.1.9.25 已经被安装在系统中了,但将被升级到 2.2.0_alpha6 版本。
          "*"符号的意思是 2.2.0_alpha6 版本由于"missing keyword"的原因而被屏蔽(mask)。
          如果使用了 --quiet 选项并且没有使用 --verbose 选项,那么此类屏蔽标志将不会显示。
          此类屏蔽标记的详细说明如下:
          标记     屏蔽类型
          ──────────────────────────
            #      package.mask
            *      missing keyword
            ~      unstable keyword
          注意:当使用 ACCEPT_KEYWORDS 在全局范围接受不稳定分支时,将不会显示波浪号(~)标记。


   注意   建议在安装或者升级前先使用 --pretend 选项,看看将会发生什么操作,有哪些包将被阻止而需要调整。
          特别是在对 system 和 world 集合进行操作时,更需要先用 --pretend 选项,因为可能会牵涉到大量软件包的变动。

   你还应该优先使用 --update ,它会忽略那些已经完成升级的包,而只是升级那些未完成升级的包。

   如果安装时没有在命令行参数中明确列出所依赖的包,那么为满足依赖关系而被安装的包将不会被加入到world文件中。
   如果你想在升级 world 集合时一并升级那些为满足依赖关系而被安装的包,那么必须在命令行参数中明确列出这些包。

   可以在命令行上使用USE变量来临时更改USE标记。但是命令行上指定的USE变量只是临时性的,不会被长久保存,因此不建议使用。
   如果你想让USE标记被长久保存,那么应该将其放置到 /etc/portage/package.use 文件中。

   如果 emerge --update [@system](https://my.oschina.net/u/591695) 或 emerge --update [@world](https://my.oschina.net/u/231745) 失败了,并且输出一条出错信息,
   那么可能是某个 ebuild 使用了新版本的 emerge 特性,你必须先使用 emerge --update portage 升级 portage 。

被屏蔽的包 注意: 请小心使用开发分支。滥用被屏蔽的包会导致大量的bug和故障,并且会耗尽Gentoo开发者的精力。 请确认你有能力自己处理接踵而至的bug和故障。

   portage中的屏蔽(mask)有多种功能:(1)用于软件包正式发布前的测试;(2)在即将撤销软件包前停止使用;
   (3)屏蔽已知有缺陷或存在安全漏洞的软件包。欲知如何解除屏蔽,请继续阅读下面的内容。
   另外还要注意的是,如果你给定了一个明确的 ebuild ,那么所有形式的屏蔽都将被忽略,emerge将会尽力安装它。

   backtracking
          软件包因为 backtracking 而被屏蔽的含义是:为了避免依赖关系冲突和/或满足特定的依赖关系,而被临时屏蔽。
          这种类型的屏蔽通常伴随一条消息:跳过某些软件包的升级,以避免依赖关系冲突和/或满足特定的依赖关系。

   package.mask
          /usr/portage/profiles/package.mask 文件主要用于阻止那些已知会导致系统问题和有缺陷的软件包。

   CHOST  使用make.conf(5)中的 ACCEPT_CHOSTS 变量来控制可接受的 CHOST 值。

   EAPI   ebuild(5)文件中的EAPI变量用于屏蔽不能被当前(较低)版本的portage所支持的包。
          被EAPI屏蔽的包只有在升级portage之后才可以被安装。

   KEYWORDS
          ebuild 文件中的 KEYWORDS 变量可以用于屏蔽尚处于测试状态的软件包。
          每个包都有个体系架构特定的关键字,让portage知道此软件包可用于哪些体系架构之上。
          如果一个软件包可用于某个体系架构,但是尚未经过严谨的测试,不能标记为"稳定",
          那么将在相应的体系结构关键字前加上一个波浪号(~)以表明该包在此体系结构上尚处于测试状态。
          emerge通过检查 ACCEPT_KEYWORDS 变量,以确定允许还是禁止合并被 KEYWORDS 屏蔽的包。
          要让emerge允许合并这些测试版本的包,可以在 /etc/portage/package.accept_keywords 文件中列出这些测试版本的包。
          参见portage(5)手册以了解更多信息。

   LICENSE
          ebuild 文件中的 LICENSE 变量可用于屏蔽受限于许可证的软件包。
          emerge通过检查 ACCEPT_LICENSE 变量,以确定允许还是禁止合并被 LICENSE 屏蔽的包。
          参见make.conf(5)手册以了解更多有关 ACCEPT_LICENSE 的信息。
          参见portage(5)手册以了解更多有关 /etc/portage/package.license 的信息。

   PROPERTIES
          ebuild 文件中的 PROPERTIES 变量可用于屏蔽特定属性的软件包。
          emerge通过检查 ACCEPT_PROPERTIES 变量,以确定允许还是禁止合并被 PROPERTIES 屏蔽的包。
          参见make.conf(5)手册以了解更多有关 ACCEPT_PROPERTIES 的信息。
          参见portage(5)手册以了解更多有关 /etc/portage/package.properties 的信息。
          可以使用 --accept-properties 选项临时覆盖 ACCEPT_PROPERTIES 的值。

   RESTRICT
          ebuild 文件中的 RESTRICT 变量可基于 RESTRICT 标记屏蔽特定的软件包。
          emerge通过检查 ACCEPT_RESTRICT 变量,以确定允许还是禁止合并被 RESTRICT 屏蔽的包。
          参见make.conf(5)手册以了解更多有关 ACCEPT_RESTRICT 的信息。
          参见portage(5)手册以了解更多有关 /etc/portage/package.accept_restrict 的信息。
          可以使用 --accept-restrict 选项临时覆盖 ACCEPT_RESTRICT 的值。

配置文件 Portage有个"配置文件保护"机制。目的在于避免新安装的包覆盖原有已经存在的配置文件。 默认情况下,"配置文件保护"机制仅在 /etc 目录和KDE配置目录内生效,将来也可能会再增加更多目录。

   当Portage要向被保护的目录(例如 /etc 目录)安装文件时,任何已经存在的文件都不会被覆盖。
   如果一个同名的文件'foo'已经存在,即将被安装的新文件将被命名为'._cfg0000_foo';
   如果一个同名的文件'._cfg0000_foo'已经存在,即将被安装的新文件将被命名为'._cfg0001_foo';等等,以此类推。
   通过这种方法,已经存在的文件就不会被自动覆盖,从而允许系统管理员手动合并新配置文件,以避免意料之外的变化。

   除了避免覆盖已经存在的文件,在卸载软件包的时候,Portage还避免删除被保护目录中的文件。
   这种做法虽然有点不清爽,但是却可以避免重要的配置文件被不慎删除。

   使用 CONFIG_PROTECT 变量设置被保护的目录(通常在 make.globals 文件中定义)。
   使用 CONFIG_PROTECT_MASK 变量设置需要从被保护目录中排除的目录。
   可以使用如下命令查找 /etc 目录中等待更新的文件: find /etc -name '._cfg????_*'

   可以通过在 make.conf(5) 中设置 CONFIG_PROTECT="-*" 来取消这种保护机制,这样Portage就会无情的自动更新所有配置文件。
   或者,你也可以在开启"配置文件保护"机制的同时,允许Portage自动覆盖/etc目录下某些特定子目录中的文件。
   例如,你想让Portage在保护 /etc 目录的同时,又自动更新rc脚本和wget配置,可以在 make.conf(5) 中添加如下行:

   CONFIG_PROTECT_MASK="/etc/wget /etc/rc.d"

   dispatch-conf, cfg-update, etc-update 之类的工具可以用于手动合并这些文件。
   它们可以用于交互式合并,还能够自动合并一些细小的变化。

文件 下面列出了一些你可能感兴趣的文件。要想得到完整的列表,请查看 portage(5) 手册页。

   /usr/share/portage/config/sets/
          该目录包含了默认的软件包集合(set)的定义。

   /var/lib/portage/world
          包含了用户自定义的软件包列表。
          你可以安全的编辑这个文件:添加你想在升级world集合时一起升级的软件包,删除那些你想忽略软件包。

   /var/lib/portage/world_sets
          与world文件类似,但是其中包含的不是软件包(atom),而是软件包集合(set),这些集合名称前都必须带有"@"字符作为前缀。
          你可以使用 /etc/portage/sets/ 目录定义你自己的软件包集合。

   /etc/portage/make.conf
          包含编译安装过程中需要使用的变量,以覆盖 make.globals 文件中的默认值。

   /etc/portage/color.map
          包含用于定义颜色的变量。

   /etc/portage/sets/
          存放用户自定义的软件包集合定义(参见 portage(5) 手册页)

   /etc/dispatch-conf.conf
          包含用于定义如何进行配置文件的自动更新与备份的变量。

   /etc/portage/make.profile/make.defaults
          包含profile特定的、用于编译的变量。请勿编辑此文件。

   /usr/portage/profiles/use.desc
          包含全局USE标记的解释。请勿编辑此文件。

   /etc/portage/make.profile/virtuals
          包含为了满足虚拟依赖关系而默认安装的软件包列表。请勿编辑此文件。

   /etc/portage/make.profile/packages
          包含系统的基础(base)软件包列表。system和world集合都基于此列表。请勿编辑此文件。

   /usr/share/portage/config/make.globals
          包含编译安装过程中需要使用的变量的默认值。请勿编辑此文件。

   /var/log/emerge.log
          记录所有emerge输出内容的日志文件。该文件总是以追加方式向其中添加内容,你只能手动清空其内容。

   /var/log/emerge-fetch.log
          记录所有emerge的文件下载日志。该文件总是以追加方式向其中添加内容,你只能手动清空其内容。

   /var/log/portage/elog/summary.log
          包含所有emerge概要信息。安装 /etc/logrotate/elog-save-summary 文件

参考资料 emerge --help, quickpkg(1), ebuild(1), ebuild(5), make.conf(5), color.map(5), portage(5)

   /usr/lib/portage/bin/  目录中有许多有用的帮助程序。

   app-portage/gentoolkit 软件包中有一些有用脚本(例如equery之类)。

Portage 2.2.7 Aug 2013 EMERGE(1)

© 著作权归作者所有

共有 人打赏支持
greister
粉丝 0
博文 41
码字总数 24526
作品 0
济宁
私信 提问
OpenERP6.1中文手册的翻译进度

OpenERP6.1中文手册的翻译进度 翻译最新进展见: http://blog.sina.com.cn/s/blog_7cb52fa8010105j7.html 一、已完成的部分有: 1)OpenERP中文手册000-044安装(保定-粉刷匠) 2)OpenERP中...

保定-粉刷匠
2012/03/05
293
2
《OpenERP6.1中文手册》尝鲜版全部完成并发布

2012年9月16日,《OpenERP6.1中文手册》尝鲜版全部完成并发布. 《OpenERP6.1中文手册》尝鲜版,是OpenERP中文社区、OpenERP手册群、OpenERP应用群近一年的学习、交流的成果的集中展示,是集体...

开源绿洲
2012/09/15
1K
0
《OpenERP6.1中文手册》尝鲜版全部完成并发布

2012年9月16日,《OpenERP6.1中文手册》尝鲜版全部完成并发布. 《OpenERP6.1中文手册》尝鲜版,是OpenERP中文社区、OpenERP手册群、OpenERP应用群近一年的学习、交流的成果的集中展示,是集体...

开源绿洲
2012/09/15
521
0
linux 打造man中文帮助手册

学IT的同学都知道, Linux是一个好东西, 但初学者往往会因为太多的命令觉得头疼, 更头疼的是所有的帮助文档都是英文. 其实Linux之所以强大, 就在于其强大的命令行, 如此繁杂的命令让一个六级以...

hbzhangmao
2014/12/10
0
16
开源电子书

目录 语言无关类 操作系统 智能系统 分布式系统 编译原理 函数式概念 计算机图形学 WEB服务器 版本控制 编辑器 NoSQL PostgreSQL MySQL 管理和监控 项目相关 设计模式 Web 大数据 编程艺术 ...

zting科技
2017/12/11
0
0

没有更多内容

加载失败,请刷新页面

加载更多

C++友元函数和友元类(C++ friend)详解

私有成员只能在类的成员函数内部访问,如果想在别处访问对象的私有成员,只能通过类提供的接口(成员函数)间接地进行。这固然能够带来数据隐藏的好处,利于将来程序的扩充,但也会增加程序书...

shzwork
30分钟前
1
0
JAVA对map进行分组

public static Map<String, List<Map<String, Object>>> transition(List<Map<String, Object>> list){ Map<String, List<Map<String, Object>>> map = new HashMap<>(); //......

火龙战士
37分钟前
0
0
Confluence 6 升级完成后的检查

这个页面中的文章将会为 Confluence 管理员为 Confluence 升级完成后 提供检查列表以确保 Confluence 的升级顺利完成。这个检查列表没有包含所有需要检查的错误,但是将会检查会通常出现错误...

honeymoose
40分钟前
1
0
Vue.js开发环境搭建说明(mac)

vue开发环境搭建(mac) 投影放大:cmd + + 安装Node 下载Node 官网下载 https://nodejs.org/en/download/ 安装Node 双击安装包,选择安装目录,比如: /usr/local/bin 安装成功后最好记录一...

Danni3
56分钟前
2
0
Qt编写自定义控件3-速度仪表盘

前言 速度仪表盘,写作之初的本意是用来展示当前测试的网速用的,三色圆环+数码管显示当前速度,Qt自带了数码管控件QLCDNumber,直接集成即可,同时还带有动画功能,其实也可以用在汽车+工业...

飞扬青云
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部