动态符号链接

动态符号链接

我已经为不同的架构构建了我的应用程序,并且想创建一个“动态符号链接”,它可以根据变量将我带到正确的版本。

如果我当前登录的机器是 x86,那么符号链接应该将我带到该版本。

A模拟的例子我想做的事:

$ uname -i
x86_64

$ ls -ltr 
lrwxr-xr-x  1 dogbane gg     4 Feb 16 15:40 mylink -> @sys/
drwxrwxr-x  2 dogbane gg  2048 Feb 16 15:40 x86_64/
drwxrwxr-x  2 dogbane gg  2048 Feb 16 15:40 i386/

$ cd mylink

$ pwd -P
~/x86_64

这可能吗?

我知道我可以使用cd $(uname -i),但想要更简单的东西。

答案1

此功能支持蜻蜓BSD,它被称为变体符号链接。看man varsymman ln了解详情。

答案2

符号链接是静态的:文件系统仅存储一个字符串,对符号链接的访问将重定向到名称(相对于符号链接的位置)为该字符串的文件。

写一个很简单保险丝文件系统公开了这种动态符号链接,但我不知道现有的。

答案3

我假设这是二进制文件,所以我会使用 PATH 变量评估器而不是符号链接来完成它。

PATH=$PATH:/base/$ARCH/bin

如果您使用的是 cfengine 或 puppet 之类的工具。可以根据系统架构创建到适当目录的符号链接。

答案4

符号链接本质上是一个带有特殊标志的文件,其中包含一些路径,并且该路径按原样解释,因此您不能以这种方式使一个符号链接指向其他位置。但您仍然可以编写运行适当构建的脚本。

相关内容