安装最新的 POSIX 手册页?

Wil*_*ard 5 man posix

CentOS 6(可能还有大多数 Linux 发行版)包含一个1p关于 POSIX 规范的手册页部分。

man 1p sh, man 1p sed, 等 阿尔。都非常有用,可以参考便携式 shell 脚本。

但是,我刚刚注意到我系统上的这些手册页来自 2003 Open Group Base Specifications!此后又出现了2008年版、2013年版和2016年版。

如何在 Linux 系统上将最新的 POSIX 规范作为手册页离线使用?


我已经尝试过以下操作:

[vagrant@localhost ~]$ set -x
++ printf '\033]0;%s@%s:%s\007' vagrant localhost '~'
[vagrant@localhost ~]$ sudo yum upgrade $(rpm -qf $(man -w 1p sh))
+++ man -w 1p sh
++ rpm -qf /usr/share/man/man1p/sh.1p.gz
+ sudo yum upgrade man-pages-3.22-20.el6.noarch
Loaded plugins: fastestmirror, security
Setting up Upgrade Process
Loading mirror speeds from cached hostfile
 * base: mirrors.evowise.com
 * extras: centos.sonn.com
 * updates: mirror.scalabledns.com
No Packages marked for Update
++ printf '\033]0;%s@%s:%s\007' vagrant localhost '~'
[vagrant@localhost ~]$ 
Run Code Online (Sandbox Code Playgroud)

(相关说明:有什么地方可以查到 2003 年版和 2016 年版之间究竟发生了什么变化?)

War*_*ung 5

手册页描述了系统的实际运行方式,而不是操作系统问世 N 年后标准机构如何更改标准。如果 Red Hat 选择随他们的操作系统一起发布 POSIX 2003 手册页,我认为这意味着这是最接近他们发布的 POSIX 标准。

我会单独保留操作系统提供的 POSIX 手册页,但下载当前版本,将它们安装在其他地方/usr/local/linux-man-pages/share/man,然后将该目录放入您的MANPATH.

如果您将p页面重命名为具有其他标记(例如pc“POSIX current”),则可以将它们与操作系统提供的标记分开查询。例如,您可以使用以下工具mmv

$ mmv 'man1p/*.1p.gz' 'man1p/#1.1pc.gz'
$ mv man1p man1pc
  ... do the same for man 2p, etc ...
$ man ls              # shows GNU ls page
$ man 1p ls           # shows OS-provided POSIX ls page
$ man 1pc ls          # shows current POSIX ls page
Run Code Online (Sandbox Code Playgroud)

删除与操作系统提供的手册页冲突的非 POSIX 手册页,或者如果您还希望能够参考当前特定于 Linux 的手册页,则对其进行类似标记。例如,您可以使用lc“Linux current”。


Kus*_*nda 1

POSIX.1-2008 标准的变更历史记录包含在基本原理卷中。

基本定义的基本原理包含系统接口Shell 和实用程序的更改历史记录的链接。

每个条目(实用程序或接口)在各个条目的底部还有一个“更改历史记录”部分。

完整的标准可以在这里找到:http://pubs.opengroup.org/onlinepubs/9699919799/nframe.html