dockerfile中su命令切換用戶激活環(huán)境,報錯su: invalid option -- ‘n‘
如果你需要通過 su
命令切換用戶后激活 Conda 環(huán)境,可以按照以下步驟操作:
1. 使用 su 切換到目標(biāo)用戶并激活環(huán)境
在終端中,直接使用 su
切換到目標(biāo)用戶(普通用戶),然后激活 Conda 環(huán)境:
su - username
此命令的作用:
- 切換到
username
用戶。 - 使用
-
確保加載目標(biāo)用戶的環(huán)境(包括.bashrc
或.bash_profile
)。
接著激活 Conda 環(huán)境:
conda activate <environment_name>
如果 Conda 沒有添加到 PATH
環(huán)境變量,請先加載 Conda 環(huán)境:
source /home/username/miniconda3/etc/profile.d/conda.sh conda activate <environment_name>
2. 一步切換用戶并激活環(huán)境
可以將 su
和 Conda 激活命令合并為一條命令:
su - username -c "source /home/username/miniconda3/etc/profile.d/conda.sh && conda activate <environment_name> && bash"
解釋:
su - username
: 切換到目標(biāo)用戶。-c "..."
: 執(zhí)行后續(xù)命令。source ...
: 加載 Conda 環(huán)境腳本。conda activate ...
: 激活指定的 Conda 環(huán)境。&& bash
: 進(jìn)入用戶的 shell(帶激活的環(huán)境)。
3. 保持當(dāng)前 Shell 激活 Conda 環(huán)境
如果你只想暫時切換用戶并激活 Conda 環(huán)境,可以運行以下命令,而不進(jìn)入交互式 Shell:
su - username -c "source /home/username/miniconda3/etc/profile.d/conda.sh && conda activate <environment_name> && python --version"
這種方式適合執(zhí)行特定任務(wù),例如運行 Python 腳本或執(zhí)行環(huán)境中的命令。
4. 配置 su 切換后自動加載 Conda
為目標(biāo)用戶配置 Conda 環(huán)境的自動加載,在目標(biāo)用戶的 ~/.bashrc
或 ~/.bash_profile
文件中添加:
報錯: su: invalid option – ‘n’ 原因為命令沒有加上引號
錯誤 su: 無效選項 – ‘n’ 發(fā)生是因為 su 命令將 -n 參數(shù)(來自 conda run 命令)解釋為自己選項,而不是您要執(zhí)行的命令的選項。
要解決這個問題,您需要確保傳遞給 su 的命令被正確引用,以便將其視為單個參數(shù)。
這里是修正后的命令:
su - nginx -c "/home/nginx/miniconda3/bin/conda run -n crisprcasfinder perl CRISPRCasFinder.pl -in /data/website_data/data_assets/genomics_begoniaceae/private/crispr/job/CRISPRCasFinder_tzyzd2L0/MelioribacterRoseus.fasta -out CRISPRCasFinder_tzyzd2L0 -noMism"
說明:
su - nginx:切換到 nginx 用戶,加載其環(huán)境。
-c:在切換用戶后執(zhí)行單個命令。
引號內(nèi)的完整命令:確保在-c 之后的所有內(nèi)容被視為一個單獨的字符串,并將其作為單個命令傳遞給 shell。
附加說明:
確保 Conda 的 PATH 或完整路徑:
如果 conda 不在 nginx 用戶的 PATH 中,請確保提供 conda 的完整路徑,如修正后的命令所示。
權(quán)限檢查:
確保 nginx 用戶有執(zhí)行 Perl 腳本和訪問所需文件及目錄的正確權(quán)限。
激活環(huán)境(可選):如果 conda 運行命令未按預(yù)期工作,您可能需要在運行腳本之前顯式激活環(huán)境。您可以按以下方式調(diào)整命令:
su - nginx -c "source /home/nginx/miniconda3/etc/profile.d/conda.sh && conda activate crisprcasfinder && perl CRISPRCasFinder.pl -in /data/website_data/data_assets/genomics_begoniaceae/private/crispr/job/CRISPRCasFinder_tzyzd2L0/MelioribacterRoseus.fasta -out CRISPRCasFinder_tzyzd2L0 -noMism"
這確保在執(zhí)行 Perl 腳本之前,crisprcasfinder 環(huán)境已正確激活。
到此這篇關(guān)于dockerfile中su命令切換用戶激活環(huán)境,報錯su: invalid option -- ‘n‘的文章就介紹到這了,更多相關(guān)dockerfile su命令內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
CentOS系統(tǒng)下docker的安裝配置及使用介紹
這篇文章主要介紹了CentOS系統(tǒng)下docker的安裝配置及使用詳細(xì)介紹,需要的朋友可以參考下2016-10-10Docker學(xué)習(xí)筆記之Weave實現(xiàn)跨主機(jī)容器互聯(lián)
這篇文章主要介紹了Docker學(xué)習(xí)筆記之Weave實現(xiàn)跨主機(jī)容器互聯(lián),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-04-04淺談Docker run 容器處于created狀態(tài)問題
這篇文章主要介紹了解決Docker run 容器處于created狀態(tài)問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-03-03docker環(huán)境下分布式運行jmeter的教程詳解
這篇文章主要介紹了docker環(huán)境下分布式運行jmeter的教程,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-10-10docker-compose部署mysql數(shù)據(jù)庫完整步驟
Docker-Compose項目是Docker官方的開源項目,負(fù)責(zé)實現(xiàn)對Docker容器集群的快速編排,這篇文章主要給大家介紹了關(guān)于docker-compose部署mysql數(shù)據(jù)庫的完整步驟,需要的朋友可以參考下2024-05-05docker內(nèi)網(wǎng)搭建dns使用域名訪問替代ip:port的操作
這篇文章主要介紹了docker內(nèi)網(wǎng)搭建dns使用域名訪問替代ip:port的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-11-11