如何在 AWS EC2 实例上预安装 sbt(通过用户数据)?
How to pre-install sbt on an AWS EC2 instance (via user data)?
我在 AWS EC2 用户数据部分尝试过但没有成功的内容:
#!/bin/bash
sudo curl -s "https://get.sdkman.io" | bash
#!/bin/bash
sudo curl --output-dir "/home/ec2-user/" -s "https://get.sdkman.io" | bash
问题是上述情况下的 .sdkman 文件夹 并未存储在 /home/ec2-user/.sdkman 中,而是 始终存储在根目录中/.sdkman 下的文件夹,用于使用用户数据自动启动 EC2 实例。 (另一方面,通过 cmd 手动安装也可以)
无法执行以下通过用户数据安装 sbt 的命令:
source "/home/ec2-user/.sdkman/bin/sdkman-init.sh"
(接受 .sdkman 文件夹存储在根文件夹中)我也尝试使用:
source ".sdkman/bin/sdkman-init.sh"
source "/.sdkman/bin/sdkman-init.sh"
但这不起作用并且 returns 出现以下错误:
find: ‘/home/ec2-user/.sdkman/src’: No such file or directory
find: ‘/home/ec2-user/.sdkman/ext’: No such file or directory
touch: cannot touch ‘/home/ec2-user/.sdkman/var/delay_upgrade’: No such file or directory
-bash: /home/ec2-user/.sdkman/var/candidates: No such file or directory
-bash: __sdkman_echo_debug: command not found
因为源命令看起来像我不能低于 /home/ec2-user/ 因为它总是被添加回路径。
更多资源:
https://sdkman.io/install
AWS EC2 实例:Amazon Linux 2 AMI (HVM) - 内核 5.10 // t3a.xlarge
非常感谢任何有关如何通过用户数据在 AWS EC2 实例上自动安装 sbt 的帮助!
我不确定这是否对您有帮助,或者 not.I 认为您可以安装 vim yum。以下命令可能适用于用户数据。
#!/bin/bash
curl https://bintray.com/sbt/rpm/rpm | sudo tee /etc/yum.repos.d/bintray-sbt-rpm.repo
sudo yum install sbt
link 以上步骤
文档:https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/install-software.html
Ec2 UserData 将作为 root 用户执行。如果您想以非root用户身份执行用户数据,请遵循以下格式。 p.s - 所有命令都必须嵌套在单个命令下,如果分成多行,则下一行将在 root 用户下执行。
#!/bin/bash
su ec2-user bash -c "curl -s "https://get.sdkman.io" | bash; source "/home/ec2-user/.sdkman/bin/sdkman-init.sh"
我在 AWS EC2 用户数据部分尝试过但没有成功的内容:
#!/bin/bash
sudo curl -s "https://get.sdkman.io" | bash
#!/bin/bash
sudo curl --output-dir "/home/ec2-user/" -s "https://get.sdkman.io" | bash
问题是上述情况下的 .sdkman 文件夹 并未存储在 /home/ec2-user/.sdkman 中,而是 始终存储在根目录中/.sdkman 下的文件夹,用于使用用户数据自动启动 EC2 实例。 (另一方面,通过 cmd 手动安装也可以)
无法执行以下通过用户数据安装 sbt 的命令:
source "/home/ec2-user/.sdkman/bin/sdkman-init.sh"
(接受 .sdkman 文件夹存储在根文件夹中)我也尝试使用:
source ".sdkman/bin/sdkman-init.sh"
source "/.sdkman/bin/sdkman-init.sh"
但这不起作用并且 returns 出现以下错误:
find: ‘/home/ec2-user/.sdkman/src’: No such file or directory
find: ‘/home/ec2-user/.sdkman/ext’: No such file or directory
touch: cannot touch ‘/home/ec2-user/.sdkman/var/delay_upgrade’: No such file or directory
-bash: /home/ec2-user/.sdkman/var/candidates: No such file or directory
-bash: __sdkman_echo_debug: command not found
因为源命令看起来像我不能低于 /home/ec2-user/ 因为它总是被添加回路径。
更多资源: https://sdkman.io/install
AWS EC2 实例:Amazon Linux 2 AMI (HVM) - 内核 5.10 // t3a.xlarge
非常感谢任何有关如何通过用户数据在 AWS EC2 实例上自动安装 sbt 的帮助!
我不确定这是否对您有帮助,或者 not.I 认为您可以安装 vim yum。以下命令可能适用于用户数据。
#!/bin/bash
curl https://bintray.com/sbt/rpm/rpm | sudo tee /etc/yum.repos.d/bintray-sbt-rpm.repo
sudo yum install sbt
link 以上步骤
文档:https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/install-software.html
Ec2 UserData 将作为 root 用户执行。如果您想以非root用户身份执行用户数据,请遵循以下格式。 p.s - 所有命令都必须嵌套在单个命令下,如果分成多行,则下一行将在 root 用户下执行。
#!/bin/bash
su ec2-user bash -c "curl -s "https://get.sdkman.io" | bash; source "/home/ec2-user/.sdkman/bin/sdkman-init.sh"