Unix 安装最佳实践,附加到路径或链接

Unix 安装最佳实践,附加到路径或链接

我有一些即将发布的软件(研究生项目),我想知道在 UNIX 机器上安装软件的最佳实践是什么。

我最初是通过/usr/local/bin我的项目链接的,但最近我考虑通过附加到.bashrc特定用户的文件来安装它,特殊情况是如果用户是 root,它会附加到全局路径而不是特定于用户的路径。

这为我带来了一些简单的功能添加,因为我可以通过将单个变量添加到.bashrc安装用户的文件夹中来快速链接到其他资源。

然而,我开始怀疑这个决定。

附加到路径还是不附加到路径,这就是问题。无论是 中的符号链接更高贵/usr/local/bin,还是拿起武器并附加到不断增长的路径变量中。

更多信息:

它是一个带有 TCL 前端的 C++ 后端。 TCL 前端还启动了一个 java 存档(在我职业生涯的早期创建)。除此之外,还有 TCL 前端的扩展,可以使用自己的 TCL 解释器来运行另一个程序。我需要使用解释器向程序提供 bwidget tcl 包。因此,提供 bwidget 包并启动 jar 文件需要有一个链接到的位置。此外,我需要让用户感到轻松,因为他们主要是化学用户,不太熟悉 UNIX,可能使用 mac。

该平台需要在 Mac 或 Unix 上运行。

理想情况下,我希望用户能够使用单个命令启动 TCL 脚本,而不是让他们记住位置。

这是一个以前封闭源代码的项目,现在是开源的,我们希望用户能够轻松编译和安装该程序

我正在使用 make 创建安装选项。

答案1

不要符号链接到 /usr/local/bin或者搞乱路径。尤其不是后者。只需编写一个安装程序,将东西安装到指定位置即可。检查一个类似的、最好是众所周知的程序,了解它是如何工作的。如果您可以提供有关您的计划的更多详细信息,我们可以根据您的需要提供一些具体的建议。

而且,没有人从头开始编写安装程序。人们通常使用 Make、Cmake、scons 等程序。有些语言有专门的安装软件,例如 python 的 distutils,如果你想使用它的话。

答案2

我见过一些软件包(通常是您在发行版的软件包存储库中找不到的东西)将自身安装到 /opt 并将 .desktop 文件添加到 ~/Desktop 和 ~/.local/share/applications 来启动它们。

答案3

两个替代建议:

  1. 在类似 Red Hat 的系统上,您可以将文件拖放到/etc/profile.d/myprogram.sh
    例如包含PATH=$PATH:/opt/myprogram
  2. 在许多系统上,您可以将PATH=...行附加到/etc/environment

但我认为安装你的程序/opt/myprogram并放置一个脚本来启动它/usr/local/bin可能是较小的罪恶。

答案4

如果您想为单个用户安装该程序,可以将二进制可执行文件放在 ~/bin 中。大多数 UNIX 系统上的 .bashrc 设置为在用户路径中包含 ~/bin(如果存在)。

相关内容