我已将 GNU“核心”实用程序 coreutils-8.21 安装到 UNIX 服务器上的以下位置:
/opt/app/p1sas1c1/apps/GNU
我现在想要添加findutils-4.4.2 包。我阅读安装文档,发现可以使用以下命令进行配置:
./configure --prefix=/opt/app/p1sas1c1/apps/GNU
这与我用来安装核心实用程序的“前缀”相同。
我的问题是:如果我这样做并遵循“make install”命令,是否会覆盖该目标位置中的现有文件,或者只是将新元素“添加”到相应的目录中?
我想首先检查一下执行此类操作的“最佳实践”。我不是经过培训的“SA”,也没有“root”访问权限;我正在使用应用程序帐户进行安装。
答案1
make install
将覆盖同名的现有文件。除此之外,它不会删除现有文件。 GNU coreutils 和 GNU findutils 旨在一起使用和安装,因此它们不会有同名的不同文件。因此,如果您一个接一个地安装它们,您将同时获得两者。
答案2
是的make install
,假设您拥有该目标位置的写访问权限,它将覆盖任何预先存在的文件。但鉴于这些包都是同一个“系统”的一部分,我倾向于认为它本质上是模块化的,并且它以受控的方式将安装安装到相同的前缀中,并且不会覆盖任何内容,就像您一样安装后续部件。
我的建议是先进行测试,看看在这样做之前实际安装了什么。您可以将其更改--prefix
为您喜欢的任何内容,只要您对该目录具有写访问权限即可。
此外:
- 为什么不使用 Linux 发行版包管理来执行此操作?
- 您是否正在安装不可用的较新版本?
- 或者你只是在学习?
无论出于什么原因,我都会考虑将软件安装为自定义“事物”与使用软件包的后果。是的,您可以选择任一方法,但是进行软件的自定义安装与使用发行版包管理器提供的现成库存品种之间存在权衡。
定制为您提供了完全的控制权,但代价是必须保持最新状态,并且必须知道如何构建和维护它。
现成的软件为您提供了便利,但现在您需要依赖其他人来维护该软件,并且您被限制在他们的日程安排中。
做出明智的选择!