জাডভোহোম সুডো ব্যবহার করে স্ক্রিপ্টে সেট করা নেই


19

আমি একটি ইনস্টল স্ক্রিপ্ট চালানোর চেষ্টা করছি যা জাভা ইনস্টল করা প্রয়োজন এবং JAVA_HOMEপরিবেশের পরিবর্তনশীল সেট করা দরকার।

আমি সেট করেছি JAVA_HOMEমধ্যে /etc/profileএবং একটি ফাইলে আমি ডেকেছে java.shমধ্যে /etc/profile.d। আমি echo $JAVA_HOMEএবং সঠিক প্রতিক্রিয়া পেতে পারি এবং আমি এমনকি sudo echo $JAVA_HOMEসঠিক প্রতিক্রিয়া পেতে পারি ।

ইন install.shআমি চালানোর জন্য চেষ্টা করছি, আমি একটি সন্নিবেশিত echo $JAVA_HOME। আমি যখন sudoজাভা ডিরেক্টরিটি না দেখে এই স্ক্রিপ্টটি চালাচ্ছি ; যখন আমি sudoএটি দিয়ে স্ক্রিপ্টটি খালি খালি করি।

কোনো ধারণা আছে কেন এটি হছে?

আমি CentOS চালাচ্ছি।


আমি উবুন্টু 14.04 চলমান এই সমস্যাটিও অভিজ্ঞতা পেয়েছি, উভয় প্রস্তাবিত উত্তরই আমার পক্ষে কাজ করেছে
ল্যাকনবাস

উত্তর:


28

সুরক্ষার কারণে, sudoপরিবেশের ভেরিয়েবলগুলি সাফ করতে পারে যার কারণেই সম্ভবত এটি গ্রহণ করা হচ্ছে না $ জাভাহোম। আপনার /etc/sudoersফাইলের জন্য দেখুন env_reset

থেকে man sudoers:

env_reset   If set, sudo will reset the environment to only contain the following variables: HOME, LOGNAME, PATH, SHELL, TERM, and USER (in addi-
           tion to the SUDO_* variables).  Of these, only TERM is copied unaltered from the old environment.  The other variables are set to
           default values (possibly modified by the value of the set_logname option).  If sudo was compiled with the SECURE_PATH option, its value
           will be used for the PATH environment variable.  Other variables may be preserved with the env_keep option.

env_keep    Environment variables to be preserved in the user's environment when the env_reset option is in effect.  This allows fine-grained con-
           trol over the environment sudo-spawned processes will receive.  The argument may be a double-quoted, space-separated list or a single
           value without double-quotes.  The list can be replaced, added to, deleted from, or disabled by using the =, +=, -=, and ! operators
           respectively.  This list has no default members.

সুতরাং, আপনি যদি এটি JAVA_HOME রাখতে চান তবে এটি এনভ_কিপে যুক্ত করুন:

Defaults   env_keep += "JAVA_HOME"

বিকল্পভাবে , JAVA_HOMEমূলের মধ্যে সেট করা ~/.bash_profile


2
হ্যাঁ, এটা ছিল। কেউ এটা করতে পারে ধারণা ছিল না। ধন্যবাদ!
জোশ

20

-ই (পরিবেশ সংরক্ষণ করুন) বিকল্পটি (ম্যান ফাইলটি দেখুন) সহ সুডো চালান, বা জাভা_হোমটিকে ইনস্টল.শ স্ক্রিপ্টে রাখুন।


CentOS এ -E বিকল্পটি উপলভ্য নয়।
জুবিন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.