Kombine sudo su konuşlandırma komutu çalışmıyor, ayrı olduğunda çalışır


1

Bu emre sahibim:

ubuntu@ip-10:~$ sudo su deploy -c 'rvm install 1.9.3' 
bash: rvm: command not found

Ben de denedim:

ubuntu@ip-10:~$ sudo su deploy -c 'source /home/deploy/.bashrc && rvm install 1.9.3' 
bash: rvm: command not found

Aynı sonuç. Ne olduğundan emin değilim çünkü bunu yaparken:

sudo su deploy
deploy@ip-10-101-6-147:/home/ubuntu$ rvm install 1.9.3
Fetching yaml-0.1.4.tar.gz to /home/deploy/.rvm/archives

Hepsi harika çalışıyor. Ama bunu yapamam çünkü bu bir kabuk betiği için. Neden ilk iki örnekte çalışmıyor?


sudan sonra kısa çizgi eklerseniz ne olur? Örneğin: sudo su - konuşlandır -c 'rvm install 1.9.3'? İşe yarıyor?
kenorb

Yanıtlar:


1

Bence sudo kullandığınızda, tüm env değişkenleri olmadan yeni bir alt kabuk yaratır.

Doğru hatırlıyorsam, rvm'nin uygun değişkenlere sahip olması için rvmsudo komutunu kullanmanız gerekir.


sudo komut için değil ... komutunu
dağıtıcı

0

Görünüşe göre, basitçe kullanıcıyı değiştirmeye ve bazı dosyaları o kullanıcının ana sayfasına dağıtan bir komutu çalıştırmaya çalışıyorsunuz.

su deploy -c 'rvm install 1.9.3'

sudoÇalıştırmak için ayrıcalıkları yükseltmenize sugerek yoktur sudove rvm'yi çalıştırmanız gerekirse, muhtemelen bunu da yapabilirsiniz.

su deploy -c 'sudo rvm install 1.9.3'
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.