运行异构环境始终是一项挑战。拥有一个拥有 AIX、IRIX、HPUX、Ultrix、Solaris 和多种 Linux 风格的企业,什么是一个好的通用 PATH 设置,它允许一组良好的通用命令,但还包括额外的,如“ifconfig”、“ping” ,以及默认情况下通常不存在的“make”?
运行异构环境始终是一项挑战。拥有一个拥有 AIX、IRIX、HPUX、Ultrix、Solaris 和多种 Linux 风格的企业,什么是一个好的通用 PATH 设置,它允许一组良好的通用命令,但还包括额外的,如“ifconfig”、“ping” ,以及默认情况下通常不存在的“make”?
特别是,您不希望在 .bashrc 中盲目地添加到 $PATH ,否则您最终会在 sub-sub-sub-sub shell 上弄得一团糟。您希望包括所有 sbin 目录,因为那里可以有重要的工具。您想包含 /usr/ccs/bin:/usr/ucb ,因为 Solaris 会在其中放置一些您可能会使用的东西。
值得注意的是,本地安装软件的选择的无限排列,例如 GNU 工具 - 通常您希望它们在系统版本之前的 PATH 中。另外,我遗漏了更可能作为历史奇闻有用的目录,例如 /etc 和 /usr/libexec。
Solaris /usr/ccs/bin 应该在实用程序的 GNU 版本之前还是之后,一直存在争议。实际上,无论您选择哪种方式,您都会偶尔遇到问题。
我使用检查和测试的组合通过我的 .bashrc/.profile 在任何给定系统上设置我的路径:
首先 - 设置一个在任何地方都应该有效的基本路径。然后你需要知道你在哪里运行:
然后您可以添加操作系统特定的路径:
其中 ck_add2path 定义为:
对于
root
用户,我会非常小心;我的意思是不要尝试使用通用路径,如果必须,请按操作系统执行。一点额外的工作,但你不想要任何惊喜。
对于非
root
,有这么多...我过去遇到的问题,特别是 AIX 的问题,是对于某些命令,您希望您的 3rd 方安装优先,因此例如将 /opt/bin 放在 /bin 之前。后来的事情发生了,因为其他实用程序依赖 PATH 为它们提供 /bin/ 中的本机工具。
它们在“那里”,但通常在 /sbin 和/或 /usr/sbin 中。我的 .bashrc 包括:
我开始在修改它之前保存我的旧路径,以便随后对我的启动脚本的调用不会导致 PATH 值不断增加......但过了一段时间我最终只是将它设置为一个很好的经验建立的基线。
我想要 X11(即使只是
resize
在远程 ssh 会话上调用 eval 来建立 COLUMNS 和 LINES 环境变量)我添加了 /usr/css/bin 因为我的一些裸安装的 solaris 在路径中没有 make(甚至更少甚至有 cc 或 gcc!)
当然,添加了 /usr/local/ 路径集,然后在我的 homedir(有和没有架构特定路径)和“.”中添加内容。
带有“。”的行 但是,如果您是 root,那么在路径中是有问题的。
到目前为止,此设置在 AIX、HPUX、IRIX、Ultrix、Solaris 和 Linux 上为我提供了很好的服务。甚至可能在那些古老的阿波罗上(有人看到 /usr/5bin 了吗?)
我第二次使用 dsully 的程序化方法来测试目录和添加路径。另外,当我添加
$dir
到时$PATH
,我通常会添加$dir/../man
到$MANPATH
(如果存在)。