কাস্টম ব্যাশ স্ক্রিপ্ট ইনস্টল করার জন্য একটি ভাল স্থায়ী জায়গা কোথায়?


32

আমি "লেইনিঞ্জেন" ইনস্টল করতে চলেছি যা ক্লোজার প্রোগ্রামিং ভাষার জন্য প্রচুর উপযোগিতা সহ একটি ব্যাশ স্ক্রিপ্ট ... ... তবে আমি নিশ্চিত নই যে এটি লিনাক্সের একটি নির্বাহযোগ্য স্ক্রিপ্ট--পুট করার পক্ষে উপযুক্ত কিনা সিস্টেম যাতে এটি স্থায়ী এবং স্থিতিশীল উপলব্ধ থাকে।

আমি মনে করি না যে / ঘরে যে কোনও জায়গায় অর্থবোধ করা হয়েছে তবে আমি জানি না যে এর জন্য কোন ডিরেক্টরি / ডিরেক্টরি ব্যবহার করা উচিত।

, / Usr / ভাগ করবেন?


উত্তর:


45

(দ্রষ্টব্য: এই পোস্টে ~হিসাবে অনুবাদ করে /home/user)

ব্যক্তিগতভাবে, আমি আমার কাস্টম-তৈরি সমস্ত সিস্টেম স্ক্রিপ্টগুলিতে /usr/local/binএবং আমার ব্যক্তিগত ব্যাশ স্ক্রিপ্টগুলিতে রেখেছি ~/bin। খুব কম প্রোগ্রাম আমি ইনস্টল করে নিজেরাই /usr/local/binডিরেক্টরিতে রাখি যাতে এটি খুব বিশৃঙ্খল না হয় এবং এটি ইতিমধ্যে $PATHআমার বেশিরভাগ মেশিনে পরিবর্তনশীল ছিল ।

/usr/local/binআপনার সিস্টেমের পথে যুক্ত করতে (এটি ইতিমধ্যে সেখানে না থাকলে) এটিকে যুক্ত করুন /etc/profile:

PATH=$PATH:/usr/local/bin
export PATH

~/binআপনার ব্যবহারকারীর পথে যুক্ত করতে এটিকে এতে যুক্ত করুন ~/.bash_profile:

PATH=$PATH:$HOME/bin
export PATH

কখনও কখনও ডিফল্ট .bash_profileফাইলের একটি আইও স্টেটমেন্ট থাকে যা এটি উপস্থিত থাকলে স্বয়ংক্রিয়ভাবে যুক্ত ~/binহয়ে যায় $PATH, তাই ~/binআপনার ইতিমধ্যে এটি কাজ করে কিনা তা দেখার জন্য একটি নতুন টার্মিনাল তৈরি করুন এবং খুলুন।


বিএসডিরা ডিফল্টরূপে এটি করে।
ক্রিস এস

@ ক্রিস: বিএসডিরা / ইউএসআর / লোকাল / বিনে প্রচুর পরিমাণে জিনিস রাখে
ড্যান অ্যান্ড্রেটা

আপনার বাশ স্ক্রিপ্ট এবং সিস্টেম স্ক্রিপ্টগুলির মধ্যে পার্থক্য কী এবং আপনি দুটি পৃথক করার কোনও কারণ আছে?
হাশিম

@ হাশিম আমি অবশ্যই ট্রেয়ের পক্ষে কথা বলতে পারি না, তবে আপনার ব্যক্তিগত প্রয়োজনের জন্য যে সরঞ্জামগুলি বিকাশ করা হয় সেগুলি সিস্টেম সরঞ্জামগুলিতে "গ্র্যাজুয়েট" হয়ে থাকে যখন আপনি দেখেন যে তারা যে সমস্যার সাথে লড়াই করছে তার সমাধান করছেন, অথবা আপনার কাছে অন্য সিস্টেম-ভিত্তিক ইনস্টল রয়েছে যা নির্ভর করে এই সরঞ্জামগুলির একটিতে। বেশিরভাগ প্রোগ্রামারদের ক্ষেত্রে সিস্টেম-প্রশস্ত কিছু ইনস্টল করার জন্য আমি থ্রোসোল্ড সন্দেহ করি। এছাড়াও, আপনার ভাগ করা কোনও সরঞ্জামের ডকুমেন্টেশন ইত্যাদি হওয়া দরকার যা অনেক বিকাশকারী খুব কমই অন্যথায় লিখেন।
ট্রিপলি

একদিকে যেমন exportএকাধিক বার পরিবর্তনশীল হওয়ার দরকার নেই (এবং সম্ভবত আপনার সিস্টেমটি ইতিমধ্যে PATHরফতানির জন্য চিহ্নিত করা হয়েছে, তাই আপনাকে এটি নিজেই করতে হবে না)।
ট্রিপলি

9

/ usr / স্থানীয় / সত্যই সঠিক জায়গা, যখন / অপ্টটি তৃতীয় পক্ষের অ্যাপ্লিকেশনগুলির জন্য সত্য; "/ অপ্ট অ্যাড-অন অ্যাপ্লিকেশন সফ্টওয়্যার প্যাকেজগুলির ইনস্টলেশনের জন্য সংরক্ষিত।" এটি ফাইল সিস্টেম হায়ারার্কি স্ট্যান্ডার্ডের একটি অংশ।

অপ্ট / আলোচনার জন্য http://www.pathname.com/fhs/pub/fhs-2.3.html দেখুন ।

/ Usr / স্থানীয় / এর জন্য, এটি "সিস্টেম প্রশাসকের ব্যবহারের জন্য"। শুধু সেখানে স্টাফ সম্পর্কে ভুলবেন না - এটি নথি।


আপনি যে লিঙ্কটি সরবরাহ করেছেন তা "ডিরেক্টরি / অপ্ট / বিন, / অপ্ট / ডক, / অপ্ট / অন্তর্ভুক্ত, / অপ্ট / তথ্য, / অপ্ট / লিবিব, এবং / অপ্ট / ম্যান স্থানীয় সিস্টেম প্রশাসকের ব্যবহারের জন্য সংরক্ষিত tells" / Usr / স্থানীয় সম্পর্কে কিছুই নেই। কেবলমাত্র / usr / স্থানীয় / ভাগ উল্লেখ আছে। অন্যদিকে, সংকলিত প্রোগ্রামগুলি সাধারণত লিনাক্সে / usr / স্থানীয় ইনস্টল করা হয়। আপনি কি মনে করেন না / অপ্ট / বিন সিস্টেম প্রশাসক দ্বারা ব্যবহারের জন্য ভাল জায়গা?
রেসার

1
@ আর্যাসার আমার অভিজ্ঞতাটি হ'ল /usr/local- নামটি থেকেই বোঝা যায় - স্থানীয় প্রশাসকের /optজন্য এবং আনুষ্ঠানিকভাবে বিতরণ করা না এমন জিনিসগুলির জন্য, যেমন বাণিজ্যিক তৃতীয় পক্ষের সফ্টওয়্যার যা একই ধরণের প্রক্রিয়া দ্বারা পরিচালিত হয় (পরিবর্তিত হতে পারে বা কোনও আপগ্রেসে মুছে ফেলা হতে পারে) আপস্ট্রিম) তবে ডিস্ট্রোর প্যাকেজ ম্যানেজার দ্বারা পরিচালিত নয়, অথবা সম্ভবত আরপিএম বা .debপ্যাকেজ হিসাবে বিতরণ করা হয়েছে , তবে ডিস্ট্রোর সমস্ত নীতি এবং কনভেনশন মেনে সংগঠিত ও প্যাকেজড নয়।
ট্রিপলি

1
@ আর্যাসার /usr/localডকুমেন্টের পরে পুরোপুরি আলাদা একটি বিভাগ রয়েছে ।
ট্রিপলি

@ আর্যাসার ট্রিপলি ঠিক আছে। এখানে লিঙ্কটি রয়েছে: pathname.com/fhs/pub/… .. সঠিক, সংকলিত প্রোগ্রামগুলি (সাধারণত ওপেন সোর্স) যেগুলি সিস্টেমের জন্য বিশেষভাবে সংকলিত / নির্মিত বা বেশ কয়েকটি সিস্টেমের মধ্যে ভাগ করা হয় (তবে সাধারণ ওএস প্যাকেজিং / বিতরণের অংশ নয়, তবে এটি ভাগ করা libs উপর অত্যধিক নির্ভর করে) / usr / স্থানীয় মধ্যে ইনস্টল করা উচিত (মূলত / usr এর শ্রেণিবিন্যাস আয়না)। তৃতীয় পক্ষের সফ্টওয়্যার যা সম্ভবত তাদের নিজস্ব লাইব্রেরি সমর্থন (যেমন, ফায়ারফক্স, ইউজারফাই) সহ একটি পৃথক সিস্টেমে সংকলিত রয়েছে / অপ্টে যেতে হবে।
জেমিসন বেকার

3

Icallyতিহাসিকভাবে আপনি পছন্দ / পছন্দ মতো কিছু ব্যবহার করতে চান। যে ব্যবহারকারীরা এটি ব্যবহার করবেন বলে মনে করা হয় ততক্ষণ fine PATH এ আপডেট হওয়া পর্যন্ত যেকোন কিছুই ঠিক আছে (সুতরাং / বাড়িতে কোনও জিনিস খারাপ ধারণা হওয়ার কারণে)।


2

/usr/share/clojureক্লোজারের বাইনারি এবং লাইব্রেরিগুলি রাখার একটি সাধারণ জায়গা বলে মনে হচ্ছে - কেন আমি জানি না, এটি একটি প্রাকৃতিক বলে মনে হচ্ছে /usr/local/share/clojure- সুতরাং siteএই বাশ স্ক্রিপ্টগুলির জন্য এর অধীনে একটি উপ-ডিরেক্টরি তৈরি করা ভাল বলে মনে হচ্ছে।

সাধারণ পয়েন্টটি হ'ল এটি ফাংশন অনুসারে স্ক্রিপ্টগুলি সংগঠিত করতে আরও বেশি অর্থবোধ করে, একই জায়গায় সমস্ত ব্যাশ স্ক্রিপ্ট নেই।


1
এটি ব্যবহার করার /usr/shareজন্য বেশ কয়েকটি সমস্যা রয়েছে । প্রথমত shareঅর্থ আর্কিটেকচার স্বাধীন ফাইল (অর্থাত্ আর্কিটেকচার জুড়ে ভাগ করা)। যে কারণে লাইব্রেরি এবং এক্সিকিউটেবলগুলি কোনও shareডিরেক্টরিতে অন্তর্ভুক্ত থাকে না। দ্বিতীয়ত /usr/localডিস্ট্রিবিউশন প্যাকেজ ম্যানেজার ব্যতীত অন্য কিছুই বাদ দিয়ে কখনও লেখা উচিত নয় /usr
ক্যাস্পার্ড

2

/usr/local, আমি বিশ্বাস করি "স্থানীয়" এর অর্থ নিয়ে কিছু বিভ্রান্তি রয়েছে।

আমি যেমন এটি বুঝতে পারি, "স্থানীয়" এর অর্থ "স্থানীয় মেশিনে / থেকে উত্পন্ন" নয় তবে আরও সহজভাবে "স্থানীয় মেশিনে নির্দিষ্ট", যা স্থানীয় মেশিনে / থেকে উত্পন্ন হতে পারে বা নাও হতে পারে।

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