我在 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"
但這不起作用并回傳以下錯誤:
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
就像使用 source 命令一樣,我無法進入 /home/ec2-user/ 下方,因為它總是被添加回路徑。
更多資源:https : //sdkman.io/install
AWS EC2 實體:Amazon Linux 2 AMI (HVM) - 內核 5.10 // t3a.xlarge
非常感謝有關如何在通過用戶資料自動化的 AWS EC2 實體上安裝 sbt 的任何幫助!
uj5u.com熱心網友回復:
Ec2 UserData 將作為 root 用戶執行。如果您想以非 root 用戶身份執行用戶資料,請遵循以下格式。ps - 所有命令都必須嵌套在單個命令下,如果您分成多行,那么下一行將在 root 用戶下執行。
#!/bin/bash su ec2-user bash -c "curl -s "https://get.sdkman.io" | bash; source "/home/ec2-user/.sdkman/bin/sdkman-init.sh ”
uj5u.com熱心網友回復:
我不確定這是否對您有幫助。我認為您可以安裝 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
上述步驟的鏈接
檔案:https : //docs.aws.amazon.com/AWSEC2/latest/UserGuide/install-software.html
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/368224.html
標籤:亚马逊网络服务 斯卡拉 亚马逊-ec2 sbt sdkman
