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.