আমি নিজেকে সংকলিত সফটওয়্যারটি কোথায় রাখব?


126

আমার ফেডোরা মেশিনে আমার কয়েকটি সফ্টওয়্যার সংকলন করা দরকার। প্যাকেজযুক্ত সফ্টওয়্যারটিতে হস্তক্ষেপ না করার জন্য এটি রাখার সর্বোত্তম জায়গা কোথায়?


আপনি এই প্রশ্নটি দরকারী মনে হতে পারে ।
rozcietrzewiacz

উত্তর:


89

কমপক্ষে দেবিয়ান-স্বাদযুক্ত সিস্টেমে থাম্বের বিধি:

  • /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ইনস্টল করেন।
হংকবোঝু

50

আপনি যদি সত্যিই এটি হস্তক্ষেপ না করতে চান তবে এটি আপনার কোথাও রাখবেন না $PATH

আপনি যদি এটিতে চান তবে $PATHঅন্তত ইনস্টল না করার বিষয়টি নিশ্চিত করুন /usr/local। আমি দেখতে পেয়েছি যে ডিস্ট্রো দ্বারা ইনস্টল করা থাকলেও প্রচুর সফ্টওয়্যার সেখানে উপস্থিত রয়েছে /usr

কাস্টম সংকলিত সফ্টওয়্যার ইনস্টল করার জন্য আমার প্রিয় উপায়টি আমার $HOMEডিরেক্টরিতে রয়েছে। এইভাবে আপনাকে sudoকোনও কিছুর জন্য ব্যবহার করতে হবে না এবং এটি আপনার সিস্টেমের বাকী অংশ থেকে খুব সুন্দরভাবে পৃথক। উদাহরণ স্বরূপ:

mkdir ~/stage
./configure --prefix=/home/username/stage && make && make install

এবং যদি আপনি চান, আপনি তারপর যোগ করতে পারেন /home/username/stage/binআপনার টু $PATH


1
অবশ্যই আপনার হোম ডিরেক্টরি ব্যবহার করা সেরা বিকল্প। আইএমও।
বিটেক

1
+1 সম্মত। আমি বাশ / রুবি / পাইথন স্ক্রিপ্টগুলির জন্য ~ / এসবিন এবং comp / বিনের এলিয়াস সহ সংকলিত ইনস্টলগুলির জন্য ~ / অপ্ট / ... পছন্দ করি।
ক্রিস

4
আপনার হোম ডিরেক্টরি ব্যবহারের জন্য +1 এটি জিনিসগুলি সহজ করে তোলে; 1 পথ এড়ানোর পরামর্শের জন্য -1 - মানকগুলি (যেমন, /usr/local) অনুসারে সেখানে "স্থানীয় ইনস্টলের জন্য সংরক্ষিত" ডিরেক্টরি রয়েছে ।
রিকার্ডো মুরি

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

# 2 মন্তব্যে "s" অক্ষরটির সম্পূর্ণ ভুল বোঝাবুঝির কেউ লক্ষ্য করেনি। এটি মুছে ফেলা উচিত
21 '18 এ

20

এফএইচএস বলছে এটি এটিকে / ইউএসআর / স্থানীয় রাখতে যেখানে ডিস্ট্রিবিউশনগুলি এটি স্পর্শ করা উচিত নয়। উত্স এবং গ্রন্থাগারগুলির জন্য /usr/local/binবাইনারিগুলির /usr/local/srcজন্য /usr/local/lib। আরও তথ্যের জন্য FHS টিপ দেখুন spec


কনফিগারেশন সম্পর্কে কি? বলুন যে আমি প্যাকেজ ম্যানেজারটি ব্যবহার না করেই মাইএসকিউএল ইনস্টল করেছি, আমার কি এখনও /etc/mysqlকনফিগারেশনের জন্য ব্যবহার করা উচিত ?
হুব্রো

আমি কেবল লক্ষ্য করেছি /usr/local/etcডিফল্টরূপে একটি ফোল্ডার রয়েছে, আমার ধারণা আমি এটি ব্যবহার করা উচিত ... :-)
হুব্রো

10

বেশিরভাগ সময়, আমি আমার নিজস্ব সংকলিত জিনিসগুলি রাখতে চাই /opt। এটি সিউডো-স্ট্যান্ডার্ড জায়গার মতো। আপনি বিবেচনা করতে পারেন /usr/local, তবে আমি আমার জিনিসগুলি 100% বিচ্ছিন্ন রাখতে পছন্দ করি।


1
ডিসট্রোর / অপ্টের (সাধারণত মালিকানাধীন প্যাকেজগুলি) / অপ্টে বেশ কয়েকটি জিনিস রাখার ঝোঁক থাকে / অপ্টটি বলে না যে ডিস্ট্রো এটি স্পর্শ করতে পারে না। তবে এটি বলে যে সম্পর্কে / usr / স্থানীয়
xenoterracide

1
আমি কখনই কোনও ডিস্ট্রো পুট জিনিস দেখিনি /opt, তবে আমি অনেকবার দেখেছি যেখানে /usr/localআবর্জনায় আবদ্ধ থাকে যা ডিস্ট্রো থেকে আসে
স্কট অ্যান্ডারসন

ডিস্ট্রো আমি জাভা লাগাতে / অপ্ট করতে পছন্দ করি আমি সেখানে অ্যাক্রোব্যাট রিডারটিও দেখেছি। যদি তারা / ইউএসআর / লোকাল স্টাফ রাখছে তবে তারা এফএইচএস উপেক্ষা করবে যা বলে যে এটি সিস্টেম আপডেটে ওভাররাইট হওয়া থেকে নিরাপদ হওয়া দরকার।
xenoterracide

তাদের প্রত্যেকের কাছে আমার ধারণা। এফএইচএস দুর্দান্ত, তবে আমি মনে করি এটি কখনও কখনও উপেক্ষা করা যায়।
স্কট অ্যান্ডারসন

আমি কেবল ডিগ্রো প্যাকেজগুলির মধ্যে /usr/localযে জিনিসটি দেখেছি সেগুলি হ'ল ডিরেক্টরি শ্রেণিবদ্ধ যা আদর্শ গাছের সাথে সমান্তরাল, এবং টেক্সের মতো জিনিসগুলির জন্য সূচী ফাইলগুলিও।
ফিল মিলার

9

তাদের রাখুন /usr/local/src

আমি যা করি তা হ'ল এই ডিরেক্টরিতে উত্সটি বের করা। এটি একটি পথ তৈরি করবে

/usr/local/src/postgresql-8.3.7

তারপরে আমি এর সাথে একটি প্রতীকী লিঙ্ক তৈরি করব:

/usr/local/src # ln -s  postgresql-8.3.7 postgresql

আপনার সমস্ত বিল্ডিং ভিতরে করুন /usr/local/src/postgresql

আপনি যখন কোন সংস্করণ ব্যবহার করছেন সেগুলি এবং দস্তাবেজের মধ্যে পপ করার দরকার পড়লে এইভাবে জিনিসগুলি করা সহায়তা করে।


1
আপনার যুক্তি উল্লেখ করার জন্য +1 এবং ওপি সংস্করণ সহ এটি কীভাবে প্রয়োগ করতে পারে।
samt

6

এটি আমার মনে করিয়ে দেয়, আমাকে আরও প্রায়ই চেকইনস্টল ব্যবহার করা দরকার ! এইভাবে আমি কেবল স্বাভাবিকটিই করি

 ./configure
 make

অনুসরণ করেছে

 sudo checkinstall

একটি .deb ফাইল তৈরি করতে ...


2
প্রশ্নের উত্তর দেয় না।
জেবেন্টলি

5

যদি সম্ভাবনা থাকে - আমি আপনার সফ্টওয়্যারটি সংকলন করে তারপরে এফসি প্যাকেজ তৈরি করার পরামর্শ দেব (আমি বিশ্বাস করি এটি সফটওয়্যার প্যাকেজ ইনস্টল করতে ইয়াম ব্যবহার করছে)। তারপরে আপনি নিজের সংকলিত সফ্টওয়্যারটির সেই প্যাকেজটি ইনস্টল করতে পারেন এবং পুরো সিস্টেমটিকে গোলযোগ না করে এটি সরিয়ে ফেলতে পারেন।


5

আপনি নিজের দ্বারা নির্মিত বেশ কয়েকটি অ্যাপ্লিকেশন সহজেই ইনস্টল করতে এবং মুছে ফেলতে সক্ষম করতে চাইলে আপনি স্টোকে সাধারণ প্যাকেজ ম্যানেজার হিসাবে ব্যবহার করতে পারেন ।


5

এফএইচএস প্রতি , /usr/local/উত্স থেকে সংকলিত অ্যাপ্লিকেশনগুলির /opt/জন্য ব্যবহৃত হয় , যখন তৃতীয় পক্ষের অ্যাপ্লিকেশনগুলির জন্য ব্যবহৃত হয় যা আপনার অপারেটিং সিস্টেম বিক্রেতা দ্বারা সমর্থিত নয়।


4

আমি দুটি জিনিস সুপারিশ করব:

সিস্টেম প্রশস্ত: স্টো ব্যবহার করুন এবং / usr / স্থানীয় / স্টো / প্যাকেজ-সংস্করণে ইনস্টল করুন। তারপরে আপনি সহজেই সংস্করণের মধ্যে স্যুইচ করতে পারেন।

আমার বাড়িতে, বা আমার / usr / স্থানীয় লেখার অনুমতি না থাকলে, আমি ব্যক্তিগতভাবে D / .Local এর অধীনে প্রোগ্রামগুলি ইনস্টল করি, যা XDG স্ট্যান্ডার্ড দ্বারা ইঙ্গিতযুক্ত

আপনি স্থানীয়ভাবে স্টো ব্যবহার করতে পারেন, যদিও আমি কখনও করি না :)


3

আমার বেশিরভাগ মানুষের চেয়ে কিছুটা আলাদা সেটআপ আছে কারণ আমি প্রচুর বিকাশ করি। আমার কাছে একটি / হোম / জ্যাকসন / বিন / ডিরেক্টরি রয়েছে যা আমি স্টাফ ইনস্টল করি এবং আমার .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

আমি এটি প্রতিটি কিছুর জন্য করব না, তবে উন্নয়নের সময় এটি দুর্দান্ত।


3

সোর্স টার্বাল থেকে দেবের তৈরি বা আরপিএম তৈরি করা আসলে এতটা কঠিন নয়। এই পদ্ধতিতে, আপনি আপনার সিস্টেমটি পরিষ্কার রাখতে আপনার ডিস্ট্রোর প্যাকেজ ম্যানেজারের সুবিধাগুলি ব্যবহার করতে পারেন। এটি আমিই করি, বেশিরভাগ সময়: একটু আরএমপি তৈরি করুন।


2

আপনি যদি কোনও অ্যাপ্লিকেশন সংকলন করে থাকেন তবে আপনি PATH env ভেরিয়েবলের মধ্যে এটির এক্সিকিউটেবল পাথ যুক্ত করতে পারেন। এটি অন্যান্য ব্যবহারকারীর উপর প্রভাব ফেলবে না।


আমি ভাবছি কেন ডাউন ভোট? এক ধরণের "ব্যালান্স অফ" করতে +1
ফুনেহে

আমিও ভাবছি কেন :-)? আমি সিস্কোপ ব্যবহারের জন্য একই সমাধান ব্যবহার করেছি যেখানে আমার কাছে ইনস্টল করার অনুমতি নেই।
হেমন্ত

@ ফুনেহে সম্ভবত কারণ এটি এমনকি প্রশ্নের উত্তর দেওয়ার চেষ্টা করে না। সফ্টওয়্যারটি কোথায় রাখবেন তা প্রশ্ন করে । এই উত্তরটি কোথাও রাখার পরে আপনি কী করতে পারেন তার একটি টিপ দেয় । কোন ফোল্ডারগুলি ব্যবহার করবেন সে সম্পর্কে কিছু পরামর্শ দিয়ে এটি উন্নত হতে পারে।
জেবেন্টলি

2

সর্বদা "এটি যেখানে থাকে সেখানে রাখার" বিকল্প রয়েছে তবে প্রথমে একটি সাধারণ আরপিএম লিখুন।


1

আপনি যদি চান যে আপনার অ্যাপ্লিকেশনটি সিস্টেমে সমস্ত ব্যবহারকারীর জন্য উপলভ্য হয় এবং আপনার কাছে প্রয়োজনীয় অনুমতি থাকে, ব্যবহার / অপ্ট করুন। আপনি যদি অ্যাপ্লিকেশনটি কেবল আপনার (এবং মূল) জন্য উপলব্ধ থাকে তবে / হোম / ব্যবহারকারীর নাম ব্যবহার করুন


0

এটি করার সহজতম উপায় হ'ল সোর্স প্যাকেজটি ( .src.rpmআরপিএমাইটগুলির জন্য) দখল করা , আনপ্যাক করা, নতুন উত্স / কনফিগারেশন / এটি যে কোনও কিছু হ্যাক করা, সংস্করণটি অ্যাপোপ্রিয়েটিভ পরিবর্তন করা এবং তৈরি করা। এটি ইনস্টল করা আপনার প্যাকেজ পরিচালককে নতুন প্যাকেজ সম্পর্কে সচেতন করে তোলে, নির্ভরতার জন্য এটি বিবেচনা করার এবং আনইনস্টল / আপডেট করার অনুমতি দেয়।

এটি প্রথমবারের মতো প্রথমবারের মতো কাজ, তবে যদি কোনও নতুন সংস্করণ (বা কিছু সমালোচনা প্যাচ) প্রকাশিত হয় তবে তা আপডেট করা সহজ। আরেকটি সুবিধা হ'ল আপনি স্থানীয় সফ্টওয়্যার দিয়ে নিজের সংগ্রহস্থল তৈরি করতে পারেন, যেমন ল্যাবটিতে থাকা মেশিনগুলির দ্বারা ভাগ করে নেওয়া।


0

একটি আরপিএম লিখুন, এটি কঠিন নয়, জিনিসগুলি কোথায় রাখা উচিত সে সম্পর্কে গাইডলাইন রয়েছে এবং স্ন্যাপটি আনইনস্টল করে দেয়।

আপনি যদি এটি করেন তবে প্যাকেজিং সিস্টেমের মাধ্যমে আসা অন্যান্য ফাইলগুলির মতো /usrএবং নীচে নয় এমন ফাইলগুলি ইনস্টল করুন /usr/local

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