我正在遵循这个网站关于构建 spring-boot docker 容器。他们正在使用 CentOS。
在他们的 dockerfile 中,他们多次调用替代命令。我想了解这些言论的目的。
注意:run 是一个 docker 命令。我对传递运行的替代命令感兴趣
RUN alternatives --install /usr/bin/java jar /usr/java/latest/bin/java 200000
RUN alternatives --install /usr/bin/javaws javaws /usr/java/latest/bin/javaws 200000
RUN alternatives --install /usr/bin/javac javac /usr/java/latest/bin/javac 200000
据我所知,他们正在修改符号链接。这是正确的吗?更重要的是,为什么?
谢谢
马特
答案1
您可能需要在系统上保留可执行文件(例如 java)的多个版本。也许您的大部分系统都可以使用 Java 8,但有一个应用程序需要 Java 7。
这备择方案程序可让您快速从一个版本切换到另一个版本。
编辑:出于其他原因,您可能想要执行此操作,请参阅JAVA_HOME 和 update-alternatives 之间有什么区别?和使用 update-alternatives 添加替代方案的更好方法?
从男人的选择:
可以在单个系统上同时安装多个实现相同或相似功能的程序。例如,许多系统同时安装了多个文本编辑器。这为系统的用户提供了选择,允许每个用户在需要时使用不同的编辑器,但如果用户没有指定特定的首选项,则程序很难选择要调用的编辑器。
这备择方案系统旨在解决这个问题。文件系统中的通用名称由提供可互换功能的所有文件共享。替代系统和系统管理员共同确定该通用名称引用哪个实际文件。