নন-রুট প্যাকেজ ম্যানেজার


51

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

সাধারণত, আমি যা করতে চাই তা হ'ল একটি নিকাশ অ্যাকাউন্ট তৈরি করা, কিছু সফ্টওয়্যার সংকলন করা $HOMEএবং সেই অ্যাকাউন্টটির জন্য ইনস্টল করা । আমি বিভিন্ন সেটআপ চেষ্টা করতে পারি এবং তারপরে আমার কাজ শেষ হয়ে গেলে কেবল অ্যাকাউন্টটি ধ্বংস করুন।

যাইহোক, সংকলন সফ্টওয়্যার ক্লান্তিকর হয়ে ওঠে।

আমার অভিজ্ঞতাটি সত্যিই সীমাবদ্ধ yumতবে আমি বুঝতে পারি না কেন আমি কোনও রেপো ফাইল ফেলে দিতে ~/etc/yum.repos.dএবং হোম অ্যাকাউন্টে সব কিছু ইনস্টল করতে পারব না ।

সফ্টওয়্যার ইনস্টল করার জন্য প্যাকেজ পরিচালকদের একটি প্রাইভেলজিড ব্যবহারকারী হিসাবে ব্যবহার করার কোনও কারণ আছে কি?

উত্তর:


35

বাইনারি প্যাকেজগুলি নির্দিষ্ট স্থানে সেগুলি ইনস্টল করা হবে এই ধারণার সাথে সংকলিত হয় /। এটি সর্বদা সহজেই পরিবর্তিত হয় না এবং নির্দিষ্ট বাইনারিগুলি স্থান পরিবর্তনযোগ্য নয় কি না তা নির্ধারণ করতে অতিরিক্ত QA প্রচেষ্টা (যা প্রথম স্থানে যথেষ্ট কঠিন!) লাগবে।

কিছুটা হলেও, আপনি ফেকেররুটের মতো জিনিসগুলি একটি উপ-ডিরেক্টরিতে অ-রুট ব্যবহারকারী হিসাবে একটি সম্পূর্ণ সিস্টেম তৈরি করতে ব্যবহার করতে পারেন তবে এটি ক্লান্তিকর এবং ভঙ্গুর।

উত্স প্যাকেজগুলির সাথে আপনার আরও ভাল ভাগ্য হবে। জেন্টো প্রিফিক্স এবং রুটলেস গাবলিনাক্স উভয়ই প্যাকেজ পরিচালক যা অ- লোকেশনে ইনস্টল /করতে পারে এবং অ rootব্যবহারকারীদের দ্বারা ব্যবহারযোগ্য হতে পারে ।


3
আমি যুক্ত করব যে 2 ধরণের স্থান পরিবর্তনযোগ্যতা রয়েছে। প্যাকেজটি ধরে নিতে পারে এটি সর্বদা নির্দিষ্ট স্থানে থাকে বা অন্যান্য জিনিস নির্দিষ্ট স্থানে থাকে (যেমন /bin) বা এটি অনুমান করা যায় যে এটি পূর্ববর্তী স্থান দ্বারা নির্দিষ্ট জায়গায় ইনস্টল করা আছে। যদিও পরেরগুলি সেই প্রকল্পগুলির দ্বারা কাজ করতে পারে তবে পূর্বের সোর্স কোডে প্যাচগুলির প্রয়োজন হয়।
ম্যাকিয়েজ পাইচোটকা

আর একটি বিকল্প একটি লা জেন্টু প্রিফিক্স, রুটলেস এবং নিক্স হ'ল পি কেজিএসসিআর । এটি নেটবিএসডি থেকে আসে তবে বিভিন্ন প্ল্যাটফর্মগুলিতে কাজ করে।
মাইকেল একস্ট্রান্ড

2
বাইনারি প্যাকেজগুলি এই ধারণার সাথে সংকলন করা হয়েছে যে এগুলি নির্দিষ্ট স্থানে ইনস্টল করা হবে/ এটি এমন একটি প্রয়োজনীয়তার মতো মনে হচ্ছে যা 30 বছর আগে সম্ভবত ন্যায়সঙ্গত হতে পারে তবে এখনকার নয়। উদাহরণস্বরূপ, envপ্রোগ্রামটি এই ধরণের সমস্যাগুলি সমাধান করার জন্য নয় ? যদি তা না হয় তবে নির্দিষ্ট স্থানে অন্যান্য বাইনারিগুলির সন্ধানের জন্য কোনও বাইনারি কনফিগার করার জন্য একটি পরিকল্পনা নিয়ে আসা সহজ।
পাইওটর ডব্রোগোস্ট

1
@ পাইওটারডব্রোগস্টকে কিছু প্রসারিত করতে হ্যাঁ, কিছুতে প্রসারিত সংখ্যা। উদাহরণস্বরূপ /etcবা (আমার জ্ঞান অনুযায়ী) /usr/lib/<packagename>/বা এর জন্য কোনও পরিবেশের পরিবর্তনশীল নেই /usr/libexec/<packagename>//usr/shareএক্সডিজি ভেরিয়েবলগুলি দ্বারা পরিবর্তন করা যেতে পারে যা এই শতাব্দীতে কিছু সময় প্রকাশিত হয়েছিল এবং পুরানো প্রোগ্রামগুলির জন্য প্রয়োজনীয়ভাবে গৃহীত হয় না।
ম্যাকিয়েজ পাইচোটকা

28

এখানে একটি প্যাকেজ ম্যানেজার প্রকল্প রয়েছে - নিক্স - একটি আকর্ষণীয় ফাউন্ডেশনাল আইডিয়া (একটি " ফাংশনাল " পিকেজি ম্যানেজার) সহ, যা প্রতিটি ব্যবহারকারীর ক্রিয়াকলাপ সমর্থন করে:

একাধিক ব্যবহারকারীর সমর্থন

০.০১ সংস্করণ থেকে শুরু করে নিক্সের একাধিক ব্যবহারকারীর সমর্থন রয়েছে। এর অর্থ হ'ল অ-সুযোগ সুবিধা প্রাপ্ত ব্যবহারকারীরা নিরাপদে সফ্টওয়্যার ইনস্টল করতে পারবেন। প্রতিটি ব্যবহারকারীর আলাদা আলাদা প্রোফাইল থাকতে পারে, নিক্স স্টোরে প্যাকেজগুলির একটি সেট যা ব্যবহারকারীর PATH এ প্রদর্শিত হয়। যদি ব্যবহারকারী কোনও প্যাকেজ ইনস্টল করে যা অন্য ব্যবহারকারী ইতিমধ্যে ইনস্টল করেছেন, প্যাকেজটি দ্বিতীয়বার তৈরি বা ডাউনলোড করা হবে না। একই সময়ে, কোনও ব্যবহারকারীর পক্ষে কোনও প্যাকেজটিতে ট্রোজান ঘোড়া ইনজেক্ট করা সম্ভব নয় যা অন্য ব্যবহারকারীর দ্বারা ব্যবহৃত হতে পারে।

আমি যোগ করতে চাই একটি নোট: Nix আপনার পছন্দসই ইউনিক্স-মতো সিস্টেমে ব্যবহারযোগ্য হওয়া উচিত (যেমন লিনাক্স ডিস্ট্রো)।

এছাড়াও রয়েছে প্যাকেজ তুষার প্যাকেজ manager-- দিয়ে ইনস্টল করা যেতে পারে এই ক্ষেত্রে সংশ্লিষ্ট বড় সংগ্রহ Nixpkgs প্ল্যাটফর্মের একটি সংখ্যা জন্য --built :

  • জিএনইউ / লিনাক্স 32-বিট এবং 64-বিট x86 (i686-লিনাক্স এবং x86_64-লিনাক্স) এ
  • ম্যাক ওএস এক্স (i686-ডারউইন এবং x86_64-ডারউইন)
  • ফ্রিবিএসডি (i686-freebsd এবং x86_64-freebsd)
  • ওপেনবিএসডি (i686- ওপেনবিএসডি)
  • উইন্ডোজ / সাইগউইন (i686-সাইগউইন),

এবং একটি সম্পর্কিত distro-- নিক্সস :

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

এবং একটি সম্পর্কিত "অবিচ্ছিন্ন" বিল্ড সিস্টেম - হাইড্রা


4
চমৎকার সারসংক্ষেপ। সম্প্রতি জিএনইউ গুইস ঘোষণা করা হয়েছিল। জিএনইউ প্যাকেজ ম্যানেজার নিকের উপর ভিত্তি করে। savannah.gnu.org/forum/forum.php?forum_id=7436
দাভোরাক

2
@ ডেভোরাক nixএবং এর মধ্যে কী কী পার্থক্য রয়েছে guix? এখন হিসাবে আমি সত্যিই nixআমার কাজের জন্য ব্যবহার করছি , আমি জানতে চাই যে আমি guixআমার প্রয়োজনীয় সরঞ্জামটির অন্য বাস্তবায়ন হিসাবে বিবেচনা করতে পারি কিনা । আমি কোথাও পার্থক্যগুলির সংক্ষিপ্ত বিবরণ পড়তে পারি? সম্ভবত, আপনি এমনকি এখানে আরও একটি বিকল্প সমাধান ঘোষণা করে, এই জাতীয় সংক্ষিপ্তসার সহ একটি উত্তর লিখতে পারেন?
ইম্জ - ইভান জ্যাচারিয়াশেভ

6

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

OME হোমে ইনস্টল করার বিকল্প রয়েছে

  • ভাষার আদিম 'প্যাকেজ ম্যানেজার' সাধারণত এটিকে বাক্সের বাইরে সমর্থন করে (যেমন রুবীর রত্ন বা হাস্কেলের জন্য ক্যাবল) বা ছোট টুইঙ্ক সহ (আমি পাইথনের নাম ভুলে গিয়েছি)
  • পুরানো ভাল ./configure --prefix=$HOME/sandbox --enable-cool-feature && make all install(বা ঝুবিল্ডের মতো বৈচিত্র)
  • সেখানে ছিল কয়েক বছর আগে $ বাড়ীতে ইনস্টল করার প্রোগ্রাম। তবে আমি এটি সন্ধান করতে পারি না - আমি অনুমান করি যে তারা প্রায়শই এটিকে ব্যবহার করেছে কারণ তারা হয় সেগুলি নিজেরাই ইনস্টল করেছে বা প্রশাসকরা ag

1
আমি সত্যিই দেখতে পাচ্ছি না এটি কীভাবে একটি যুক্তিযুক্ত যুক্তি is কেবল কোনও প্যাকেজটি কাজ করে না কারণ এটি রুট হিসাবে ডাকা হয় নি তার অর্থ ধারণাগুলি কার্যকর নয়। আশা করা যায় যে পলিসিকিট এই ধরণের পরিস্থিতির জন্য কাজ করবে না। প্রচুর অন্যান্য প্যাকেজ রয়েছে যেগুলি রুট সুবিধাগুলি ছাড়াই ইনস্টল করা যেতে পারে। আমি সফ্টওয়্যার প্যাকেজ পরিচালকদের সম্পর্কে সচেতন (পাইথন হ'ল ইজিআইনস্টল), তবে এগুলি ইয়াম বা অ্যাপটি-গেট হিসাবে বিশ্বব্যাপী প্রযোজ্য নয়। ম্যাকিয়েজ যে প্রোগ্রামটির উল্লেখ করছেন তার নাম কি কেউ জানেন?
elmt

1
@ এমএমটি: সম্ভবত স্টো , যা আপনাকে যেভাবেই আগ্রহী হতে পারে (তবে এটি একটি সরঞ্জাম, প্যাকেজ উত্স নয়)।
গিলস 'তাই খারাপ হওয়া বন্ধ করুন'

@ গিলস: না - এটির জিইউআই ছিল এবং এটি 'সরল' বোঝানো হয়েছিল। আমি অনুমান করি যে বর্তমান দিকনির্দেশটি সিন্যাপটিক / প্যাকেজকিট বেশি।
ম্যাকিয়েজ পাইচোতকা

6

আমি জুজু ব্যবহার করি যা মূলত আপনার $ হোম / .জু ডিরেক্টরিতে সত্যই একটি ছোট্ট লিনাক্স বিতরণ করতে পারে (কেবলমাত্র প্যাকেজ ম্যানেজার সহ)।

এটি হোম ডিরেক্টরিতে আপনার কাস্টম সিস্টেমটিকে প্রোটের মাধ্যমে অ্যাক্সেসযোগ্য করতে দেয় এবং অতএব, আপনি কোনও অধিকার ছাড়াই কোনও প্যাকেজ ইনস্টল করতে পারেন। এটি সমস্ত বড় লিনাক্স বিতরণে সঠিকভাবে চলবে, একমাত্র সীমাবদ্ধতা হ'ল ন্যূনতম রিক্যামেন্ডেড সংস্করণ ২.6.৩২ সহ লিনাক্স কার্নেলে জুজু চালাতে পারে।


4

বরং ভিন্ন মডেল সহ অন্য একটি 0 ইনস্টল । এটি এমন ধারণার উপর ভিত্তি করে তৈরি করা হয়েছে যে আপনি সত্যিকার অর্থে প্যাকেজ ইনস্টল করেন না, তবে কেবলমাত্র এমন একটি বিশ্বব্যাপী নেমস্পেস থেকে চালান যা আপনার প্রয়োজন মতো সফ্টওয়্যার ডাউনলোড, সংকলন এবং ক্যাশে করে।


4

আপনি যদি উত্স থেকে সংকলন করে এবং নির্ভরতাগুলি নিজেই সমাধান করার ক্ষেত্রে ভাল থাকেন তবে প্রাথমিকভাবে প্যাকেজ ম্যানেজারকে মোতায়েন / অবিকৃত / আপগ্রেড অপারেশন পরিচালনা করতে চান, আপনি জিএনইউ স্টো বা কিছুটা উন্নত এক্সস্টো একবার দেখে নিতে পারেন । তাদের সাথে, আপনি ইনস্টলেশনটি একটি পৃথক ডিরেক্টরিতে (সাধারণত অধীনে $PREFIX/stow) স্টেজ করেন এবং তারপরে স্টো আপনার আসল উপসর্গ থেকে সফ্টওয়্যারটিতে প্রতিলিঙ্ক তৈরি করে। এটি সফ্টওয়্যার সম্পূর্ণরূপে অপসারণ করা সহজ করে তোলে। আমি এটিকে আমার বিশ্ববিদ্যালয়ে আমার কাস্টম ইনস্টলড সফ্টওয়্যারটি সাফল্যের সাথে ব্যবহার করি।


3

আমার অভিজ্ঞতা সত্যই কেবল ইউমের মধ্যে সীমাবদ্ধ, তবে আমি কেন বুঝতে পারি না যে আমি কেন একটি রেপো ফাইল y / etc / yum.repos.d এ ফেলে দিতে এবং yum সমস্ত কিছু একটি হোম অ্যাকাউন্টে ইনস্টল করতে পারব না।

মূলধারার লিনাক্স প্যাকেজ পরিচালকরা বিশ্বকে সিসাদমিন হিসাবে দেখেন ... যেখানে মেশিনটি একক সত্তা। এটি আপনাকে "সিস্টেম এক্সে কী কী অসামান্য ত্রুটি প্রয়োগ হয়" এবং "সিস্টেম এক্স এবং সিস্টেম ওয়াই কীভাবে পৃথক হয়" ইত্যাদি প্রশ্নের উত্তর পেতে অনুমতি দেয়। এটি ইয়ামকে "একটি ইতিহাস" রাখার অনুমতি দেয় যা ব্যবহারযোগ্য, rpmdb সংস্করণ থাকতে পারে এবং "yum - সুরক্ষা আপডেট" ইত্যাদির মতো কাজ করে etc.

শূন্য-ইনস্টলের মতো কিছু প্যাকেজ পরিচালক রয়েছে, যা বিশ্বকে ব্যবহারকারী হিসাবে দেখার চেষ্টা করে ... যেমন। কি অ্যাপ্লিকেশন কি আমি এক্সেস আছে।

আপনি সম্ভবত পরে একটি ভাল মডেল হিসাবে মনে করতে পারেন, কিন্তু IMNSHO এমন একটি কারণ আছে যা আপনি শূন্য-ইনস্টল সম্পর্কে শুনে নি তবে আপনি ইয়ামের কথা শুনেছেন।


2

এই ব্লকে একটি নতুন বাচ্চা রয়েছে: " জুনেস্ট ( জেল ইউজার নেস্ট ) - আর্চ লিনাক্স ভিত্তিক ডিস্ট্রো যা কোনও লিনাক্স ডিস্ট্রোতে রুট অ্যাক্সেস ছাড়াই চলে runs" @ https://github.com/fsquillace/ জুনেস্ট সুবিধা হ'ল এটি কোনও নতুন ধরণের প্যাকেজ বিন্যাস প্রবর্তন করে না, তাই খুব সহজেই ইনস্টল করার পরে (সর্বনিম্ন: সিএ। 320 এম), সম্পূর্ণ আর্চ লিনাক্স সংগ্রহস্থল (13000 এরও বেশি প্যাকেজ এটিএম) আপনার নখদর্পণে।


1

স্ল্যাকওয়ার দ্বারা ব্যবহৃত সরঞ্জামগুলি, বিশেষত installpkg, পারেন। ম্যান পৃষ্ঠা থেকে:

--root /otherroot
       Install using a location other than / (the default) as the root of the 
       filesystem to install on. In the example given, use /otherroot instead.
       Setting the ROOT environment variable does the same thing.

যাইহোক, আমি এটি করতে সক্ষম এমন আরও ভাল ফ্রন্টএন্ডেজের কোনওটিই জানি না (যেমন slapt-get, যতদূর আমি জানি, এটি করতে পারে না)। তাত্ত্বিকভাবে, আপনার উপন্যাসের installpkgপক্ষে সক্ষম হওয়া উচিত installpkg --root ~/Apps- তবে, আমি মনে করি যে বেশিরভাগ সীমান্তগুলিকে চালানোর জন্য মূলের প্রয়োজন, যা পয়েন্টটি পরাস্ত করে।


1

আমি http://linuxbrew.sh/ পরামর্শ দিচ্ছি

এটি ম্যাকোসের জন্য মূলত একটি বার্মার কাঁটাচামচ এবং ব্যবহারের জন্য বাইনারিগুলি প্রাক্পম্পাইল করে ...

পুরানো জিসিসি সংস্করণগুলি পরিচালনা করার জন্য বিশেষত দুর্দান্ত।

আপনি যদি সত্যিই হাতে ইনস্টল করতে চান তবে একটি দরকারী গাইড হ'ল http://www.linuxfromscratch.org/


0

ইউমের ডেটাবেজে লিখতে হবে যা মূলের দ্বারা নিজস্ব। এ কারণে আপনি এটিকে সাধারণ ব্যবহারকারী হিসাবে ব্যবহার করতে পারবেন না।

আপনি নিজের পছন্দের ডিরেক্টরিতে rpm ফাইলগুলি (rpm2cpio package.rpm | cpio -idmv) সংক্ষেপিত করার চেষ্টা করতে পারেন।

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

উদাহরণ:

# mkdir new_root
# cd new_root
# wget ftp://mirror.switch.ch/pool/4/mirror/centos/6.7/os/x86_64/Packages/vim-enhanced-7.4.629-5.el6.x86_64.rpm
# rpm2cpio vim-enhanced-7.4.629-5.el6.x86_64.rpm | cpio -idmv
# ./usr/bin/vim -version
VIM - Vi IMproved 7.4 (2013 Aug 10, compiled Jul 24 2015 02:23:23)

উপরের কোনও নির্ভরযোগ্য গ্রন্থাগার নেই, অন্যথায় আপনার মতো কিছু ব্যবহার করতে হবে:

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