यह बैश कोड है जिसे चलाया जाना चाहिए। इसलिए पहले यह उपयोगकर्ता को ओपनप्रोजेक्ट करने के लिए विकल्प देता है और सभी कोड चलाता है:
su openproject -c "bash -l"
cd ~/openproject
git checkout Gemfile.lock
git pull
bundle install
RAILS_ENV="production" bundle exec rake db:migrate
RAILS_ENV="production" bundle exec rake db:seed
RAILS_ENV="production" bundle exec rake assets:precompile
मैंने ऊपर की स्क्रिप्ट को इस में संजोने की कोशिश की है:
su - openproject -c "cd ~openproject/openproject"
su - openproject -c "git checkout stable"
su - openproject -c "git checkout Gemfile.lock"
su - openproject -c "git pull"
su - openproject -c "bundle install"
su - openproject -c "RAILS_ENV="production" bundle exec rake db:migrate"
su - openproject -c "RAILS_ENV="production" bundle exec rake db:seed"
su - openproject -c "RAILS_ENV="production" bundle exec rake assets:precompile"
लेकिन यह ठीक से नहीं चलता है और हर कदम पर पासवर्ड मांगता है। अनूदित लिपि को कैसे सुधारा जा सकता है इसलिए यह काम करती है?
अद्यतन 1:
इसके बारे में आत्मसात करने के बाद मैं वह बिंदु हूं जहां कोड को संशोधित किया गया है:
cd ~openproject/openproject
sudo -u openproject git checkout stable
sudo -u openproject git checkout Gemfile.lock
sudo -u openproject git pull
# the output is good thill here
sudo -u openproject bundle install
sudo -u openproject RAILS_ENV="production" bundle exec rake db:migrate
sudo -u openproject RAILS_ENV="production" bundle exec rake db:seed
sudo -u openproject RAILS_ENV="production" bundle exec rake assets:precompile
आउटपुट उस लाइन तक ठीक है जो कोड में बताता है। वहाँ से मुझे 4 त्रुटि मिलती हैं
sudo: बंडल: कमांड नहीं मिला
अद्यतन 2:
दिमित्री वासिलीनोव के सुझाव की कोशिश करने के बाद मैंने पाया कि अगर मैं -i सम्मिलित करता हूं तो यह उपयोगकर्ता लॉगिन के रूप में अनुकरण करेगा। हालांकि यह ऐसा करने का अंतिम तरीका नहीं है।
अगर मैं echo $PATH
ओपनप्रूजेक्ट के रूप में लॉग इन करने के बाद भागता हूं, तो यह ouput है/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/home/openproject/.rvm/bin
अगर मैं आउटपुट के echo $PATH
बाद चलाsu openproject -c "bash -l"
/home/openproject/.rvm/gems/ruby-2.1.0/bin:/home/openproject/.rvm/gems/ruby-2.1.0@global/bin:/home/openproject/.rvm/rubies/ruby-2.1.0/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/home/openproject/.rvm/bin
cd
, क्योंकि यह एक शेल बेसिन है।
sudo
किसी अन्य उपयोगकर्ता के रूप में चलाने के लिए उपयोग किया जाता है, root
डिफ़ॉल्ट होने के नाते यदि कुछ भी निर्दिष्ट नहीं है, तो आप पूरी तरह से निष्पादित कर सकते हैं sudo -u openproject bundle install
।
bundle: command not found
क्योंकि आपके द्वारा सेट त्रुटि PATH
या GEM_PATH
अपने में .bash_profile
या .bashrc
, वे, गैर लॉगिन / गैर-सहभागी गोले में मार डाला नहीं कर रहे हैं तो आप उत्तीर्ण करने की आवश्यकता -i
करने के लिए sudo
अनुकरण लॉगिन करने के लिए, इस तरह:sudo -iu openproject bundle install
sudo
, नहींsu
।