আমার ফেডোরা মেশিনে আমার কয়েকটি সফ্টওয়্যার সংকলন করা দরকার। প্যাকেজযুক্ত সফ্টওয়্যারটিতে হস্তক্ষেপ না করার জন্য এটি রাখার সর্বোত্তম জায়গা কোথায়?
আমার ফেডোরা মেশিনে আমার কয়েকটি সফ্টওয়্যার সংকলন করা দরকার। প্যাকেজযুক্ত সফ্টওয়্যারটিতে হস্তক্ষেপ না করার জন্য এটি রাখার সর্বোত্তম জায়গা কোথায়?
উত্তর:
কমপক্ষে দেবিয়ান-স্বাদযুক্ত সিস্টেমে থাম্বের বিধি:
/usr/local
স্টাফ জন্য যা "সিস্টেম-ব্যাপী" -ie /usr/local
একটি ডিস্ট্রো ডিফল্ট হতে থাকে $PATH
, এবং একটি প্রমিত ইউনিক্স ডিরেক্টরি অনুক্রমের অনুসরণ /usr/local/bin
, /usr/local/lib
ইত্যাদি
/opt
স্টাফ জন্য আপনি প্রতি-অ্যাপ উপসর্গ-অর্থাত সঙ্গে সিস্টেম-ব্যাপী করতে, বিশ্বাস করতে পারি না /opt/firefox-3.6.8
, /opt/mono-2.6.7
এবং তাই। এখানে স্টাফের জন্য আরও সতর্কতা অবলম্বন করা দরকার, তবে আপনার সিস্টেমটি ভেঙে যাওয়ার সম্ভাবনাও কম — আপনি সরাতে ফোল্ডারটি মুছুন এবং এটি চলে যাওয়ার পরে এটি সরানো সহজ।
/opt
যদি আপনি sudo
ইনস্টল করেন।
আপনি যদি সত্যিই এটি হস্তক্ষেপ না করতে চান তবে এটি আপনার কোথাও রাখবেন না $PATH
।
আপনি যদি এটিতে চান তবে $PATH
অন্তত ইনস্টল না করার বিষয়টি নিশ্চিত করুন /usr/local
। আমি দেখতে পেয়েছি যে ডিস্ট্রো দ্বারা ইনস্টল করা থাকলেও প্রচুর সফ্টওয়্যার সেখানে উপস্থিত রয়েছে /usr
।
কাস্টম সংকলিত সফ্টওয়্যার ইনস্টল করার জন্য আমার প্রিয় উপায়টি আমার $HOME
ডিরেক্টরিতে রয়েছে। এইভাবে আপনাকে sudo
কোনও কিছুর জন্য ব্যবহার করতে হবে না এবং এটি আপনার সিস্টেমের বাকী অংশ থেকে খুব সুন্দরভাবে পৃথক। উদাহরণ স্বরূপ:
mkdir ~/stage
./configure --prefix=/home/username/stage && make && make install
এবং যদি আপনি চান, আপনি তারপর যোগ করতে পারেন /home/username/stage/bin
আপনার টু $PATH
।
/usr/local
) অনুসারে সেখানে "স্থানীয় ইনস্টলের জন্য সংরক্ষিত" ডিরেক্টরি রয়েছে ।
এফএইচএস বলছে এটি এটিকে / ইউএসআর / স্থানীয় রাখতে যেখানে ডিস্ট্রিবিউশনগুলি এটি স্পর্শ করা উচিত নয়। উত্স এবং গ্রন্থাগারগুলির জন্য /usr/local/bin
বাইনারিগুলির /usr/local/src
জন্য /usr/local/lib
। আরও তথ্যের জন্য FHS টিপ দেখুন spec
/etc/mysql
কনফিগারেশনের জন্য ব্যবহার করা উচিত ?
/usr/local/etc
ডিফল্টরূপে একটি ফোল্ডার রয়েছে, আমার ধারণা আমি এটি ব্যবহার করা উচিত ... :-)
বেশিরভাগ সময়, আমি আমার নিজস্ব সংকলিত জিনিসগুলি রাখতে চাই /opt
। এটি সিউডো-স্ট্যান্ডার্ড জায়গার মতো। আপনি বিবেচনা করতে পারেন /usr/local
, তবে আমি আমার জিনিসগুলি 100% বিচ্ছিন্ন রাখতে পছন্দ করি।
/opt
, তবে আমি অনেকবার দেখেছি যেখানে /usr/local
আবর্জনায় আবদ্ধ থাকে যা ডিস্ট্রো থেকে আসে
/usr/local
যে জিনিসটি দেখেছি সেগুলি হ'ল ডিরেক্টরি শ্রেণিবদ্ধ যা আদর্শ গাছের সাথে সমান্তরাল, এবং টেক্সের মতো জিনিসগুলির জন্য সূচী ফাইলগুলিও।
তাদের রাখুন /usr/local/src
।
আমি যা করি তা হ'ল এই ডিরেক্টরিতে উত্সটি বের করা। এটি একটি পথ তৈরি করবে
/usr/local/src/postgresql-8.3.7
তারপরে আমি এর সাথে একটি প্রতীকী লিঙ্ক তৈরি করব:
/usr/local/src # ln -s postgresql-8.3.7 postgresql
আপনার সমস্ত বিল্ডিং ভিতরে করুন /usr/local/src/postgresql
।
আপনি যখন কোন সংস্করণ ব্যবহার করছেন সেগুলি এবং দস্তাবেজের মধ্যে পপ করার দরকার পড়লে এইভাবে জিনিসগুলি করা সহায়তা করে।
যদি সম্ভাবনা থাকে - আমি আপনার সফ্টওয়্যারটি সংকলন করে তারপরে এফসি প্যাকেজ তৈরি করার পরামর্শ দেব (আমি বিশ্বাস করি এটি সফটওয়্যার প্যাকেজ ইনস্টল করতে ইয়াম ব্যবহার করছে)। তারপরে আপনি নিজের সংকলিত সফ্টওয়্যারটির সেই প্যাকেজটি ইনস্টল করতে পারেন এবং পুরো সিস্টেমটিকে গোলযোগ না করে এটি সরিয়ে ফেলতে পারেন।
আপনি নিজের দ্বারা নির্মিত বেশ কয়েকটি অ্যাপ্লিকেশন সহজেই ইনস্টল করতে এবং মুছে ফেলতে সক্ষম করতে চাইলে আপনি স্টোকে সাধারণ প্যাকেজ ম্যানেজার হিসাবে ব্যবহার করতে পারেন ।
এফএইচএস প্রতি , /usr/local/
উত্স থেকে সংকলিত অ্যাপ্লিকেশনগুলির /opt/
জন্য ব্যবহৃত হয় , যখন তৃতীয় পক্ষের অ্যাপ্লিকেশনগুলির জন্য ব্যবহৃত হয় যা আপনার অপারেটিং সিস্টেম বিক্রেতা দ্বারা সমর্থিত নয়।
আমি দুটি জিনিস সুপারিশ করব:
সিস্টেম প্রশস্ত: স্টো ব্যবহার করুন এবং / usr / স্থানীয় / স্টো / প্যাকেজ-সংস্করণে ইনস্টল করুন। তারপরে আপনি সহজেই সংস্করণের মধ্যে স্যুইচ করতে পারেন।
আমার বাড়িতে, বা আমার / usr / স্থানীয় লেখার অনুমতি না থাকলে, আমি ব্যক্তিগতভাবে D / .Local এর অধীনে প্রোগ্রামগুলি ইনস্টল করি, যা XDG স্ট্যান্ডার্ড দ্বারা ইঙ্গিতযুক্ত ।
আপনি স্থানীয়ভাবে স্টো ব্যবহার করতে পারেন, যদিও আমি কখনও করি না :)
আমার বেশিরভাগ মানুষের চেয়ে কিছুটা আলাদা সেটআপ আছে কারণ আমি প্রচুর বিকাশ করি। আমার কাছে একটি / হোম / জ্যাকসন / বিন / ডিরেক্টরি রয়েছে যা আমি স্টাফ ইনস্টল করি এবং আমার .bashrc এটি সম্পাদনা করে:
export PATH=/home/jackson/bin/bin::$PATH
export LD_LIBRARY_PATH=/home/jackson/bin/lib:$LD_LIBRARY_PATH
export PKG_CONFIG_PATH=/home/jackson/bin/lib/pkgconfig:$PKG_CONFIG_PATH
আমি এটি প্রতিটি কিছুর জন্য করব না, তবে উন্নয়নের সময় এটি দুর্দান্ত।
আপনি যদি কোনও অ্যাপ্লিকেশন সংকলন করে থাকেন তবে আপনি PATH env ভেরিয়েবলের মধ্যে এটির এক্সিকিউটেবল পাথ যুক্ত করতে পারেন। এটি অন্যান্য ব্যবহারকারীর উপর প্রভাব ফেলবে না।
আপনি যদি চান যে আপনার অ্যাপ্লিকেশনটি সিস্টেমে সমস্ত ব্যবহারকারীর জন্য উপলভ্য হয় এবং আপনার কাছে প্রয়োজনীয় অনুমতি থাকে, ব্যবহার / অপ্ট করুন। আপনি যদি অ্যাপ্লিকেশনটি কেবল আপনার (এবং মূল) জন্য উপলব্ধ থাকে তবে / হোম / ব্যবহারকারীর নাম ব্যবহার করুন
এটি করার সহজতম উপায় হ'ল সোর্স প্যাকেজটি ( .src.rpm
আরপিএমাইটগুলির জন্য) দখল করা , আনপ্যাক করা, নতুন উত্স / কনফিগারেশন / এটি যে কোনও কিছু হ্যাক করা, সংস্করণটি অ্যাপোপ্রিয়েটিভ পরিবর্তন করা এবং তৈরি করা। এটি ইনস্টল করা আপনার প্যাকেজ পরিচালককে নতুন প্যাকেজ সম্পর্কে সচেতন করে তোলে, নির্ভরতার জন্য এটি বিবেচনা করার এবং আনইনস্টল / আপডেট করার অনুমতি দেয়।
এটি প্রথমবারের মতো প্রথমবারের মতো কাজ, তবে যদি কোনও নতুন সংস্করণ (বা কিছু সমালোচনা প্যাচ) প্রকাশিত হয় তবে তা আপডেট করা সহজ। আরেকটি সুবিধা হ'ল আপনি স্থানীয় সফ্টওয়্যার দিয়ে নিজের সংগ্রহস্থল তৈরি করতে পারেন, যেমন ল্যাবটিতে থাকা মেশিনগুলির দ্বারা ভাগ করে নেওয়া।