স্থানীয়ভাবে কোনও ব্যবহারকারীর কাছে প্যাকেজ ইনস্টল করা - সেরা অনুশীলন?


18

আমি কোনও স্থানীয়ভাবে কোনও গেটটি কোনও আরএইচইএল সার্ভারে ব্যবহারকারীর কাছে ইনস্টল করতে চাই (আমার কাছে রুট অ্যাক্সেস নেই) কোনও স্থানীয় ব্যবহারকারীর অ্যাকাউন্টে সফ্টওয়্যার ইনস্টল করার আপনার সবচেয়ে পরিষ্কার / সর্বাধিক সংগঠিত উপায় কী হবে?

  • ব্যবহারকারীদের হোম ডিরেক্টরিতে সবকিছু ইনস্টল করা হচ্ছে?
  • ডিরেক্টরি লেআউট দেখতে কেমন হবে?
  • আপনি উত্স বা RPM থেকে ইনস্টল করবেন?
  • আরপিএম থেকে আপনি কি ইউইউএম বা আরপিএম ব্যবহার করবেন?

উত্তর:


17

ব্যবহারকারীর ডিরেক্টরিতে আরপিএম ইনস্টল করার উপায় রয়েছে যা ব্যবহার করে rpm, তবে আমি বিশ্বাস করি না যে এটি সরাসরি-এগিয়ে রয়েছে। আমি বিশ্বাস করি না যে এর উপায় আছে yum

আমার স্ট্যান্ডার্ড অনুশীলনটি localআমার বাড়ির উত্স থেকে ডিরেক্টরিতে সংকলন করতে পরিণত হয়েছে

$ mkdir ~/local
$ mkdir ~/local/bin
$ mkdir ~/local/lib
$ mkdir ~/local/include

আমি করব হিসাবে আমি ডাউনলোড উৎস /usr/localযখন আমি রুট আছে, যেমন, মধ্যে ~/local/git

সংকলন করার সময় আমি localডিরেক্টরিতে উপসর্গ সেট করি

$ configure --prefix=/home/user_name/local
$ make
$ make install

আমি তখন ~/local/binআমার AT PATH in এ যোগ করি .bash_profile

অবশ্যই উত্স থেকে ইনস্টল করার ব্যথা হ'ল আপনি স্বয়ংক্রিয়ভাবে নির্ভরতা সমাধান পান না। যদি আপনি দেখতে পান যে আপনাকে নির্ভরতা ইনস্টল করতে হবে, তাদের উপরের মত সংকলন এবং ইনস্টল করুন। তারপরে আপনি যখন সংকলন করবেন তখন আপনার কম্পাইল gitফ্ল্যাগগুলি আপডেট করতে হবে যাতে তারা নির্ভরতার লাইব্রেরিগুলির জন্য সঠিক স্থানে সন্ধান করে এবং ফাইলগুলি অন্তর্ভুক্ত করে:

./configure --prefix=/home/user_name/local LDFLAG='-L/home/user_name/local/lib' CFLAGS='-I/home/user_name/local/include' CPPFLAGS='-I/home/user_name/local/include' CXXFLAGS='-I/home/user_name/local/include'

এটি নিখুঁতভাবে কাজ করেছে, পরামর্শের জন্য ধন্যবাদ!
ওয়্যারডিন

13

একটি .rpm ফাইল আসলে cpioসংরক্ষণাগারের একটি ফর্ম , যা অনেকটা সাধারণ আকারের মতো tarrpm2cpioউপযোগ সম্ভবত সিস্টেমে ইনস্টল করা এবং ব্যবহার করা বিশেষাধিকার প্রয়োজন হয় না; এটি স্ট্যান্ডার্ড আউট লিখেছে, তাই রূপান্তর করতে:

rpm2cpio whatever.rpm > whatever.cpio

একটা ব্যাপার man cpioআপনি নিজেকে তাকান করতে পারেন, কিন্তু তুমি এখন কি করতে মোড "মধ্যে কপি" এ cpio সংরক্ষণাগারটি ফিড নেই চাই:

cat whatever.cpio | cpio -i

খুব সম্ভবত স্টাফগুলি একটি ডিরেক্টরি ট্রিতে সাজানো হয়েছে যাতে ফাইলগুলি উপযুক্ত স্থানে (বিন, ইত্যাদি ইত্যাদি) যায়। যদি সেগুলি আপনার পিডব্লুডে বিদ্যমান না থাকে তবে আপনি একটি ত্রুটি পাবেন তবে এটি সংরক্ষণাগারে ফাইলগুলি তালিকাভুক্ত করবে (আপনি -t/ --listস্যুইচ দিয়ে একই জিনিসটি পেতে পারেন)। আপনি যদি স্বয়ংক্রিয়ভাবে ডিরেক্টরিগুলি তৈরি করতে চান তবে ব্যবহার করুন -d। একটি আরপিএম আনপ্যাক করার দ্রুত উপায়:

rpm2cpio whatever.rpm | cpio -i -d

আপনি এটি $ HOM এ ইনস্টল করতে ব্যবহার করতে পারেন। সমস্যাটি কেবল তখনই হবে যদি প্রোগ্রামটি স্টাফ /etcইত্যাদির সন্ধান করতে পারে ইত্যাদি, যেহেতু অনেকগুলি বিষয়গুলির ইনস্টল করার জায়গাটি যেকোন উদ্দেশ্যে হার্ড-কোড করা থাকে যখন তারা সংকলিত হয়।

উত্স থেকে বিল্ডিং সম্ভবত একটি ভাল বিকল্প (যেহেতু আপনি সঠিক অবস্থান প্রদান করতে পারেন), তবে যদি আপনি এটি যে কোনও ক্ষেত্রেই কাজ করতে পারেন তবে তা দ্রুত এবং সহজ।

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


0

এটি একটি বিকল্প (ইয়াম ব্যবহার না করে) এবং অনুমতিটি অসম্পূর্ণ হবে তবে আপনি chownপরবর্তী লক্ষ্যবস্তু ব্যবহারকারীর কাছে এটি করতে পারেন : - এটিও হিট বা মিস :-(

#-## Download all dependency for the RPM -- 
#sudo yum install yum-utils
#sudo yumdownloader --resolve --destdir ~/download bash

#-## Install all downloaded to an alternate root 
#sudo rpm --initdb --root <user_home_dir>
#sudo rpm --root <user_home_dir> -Uvh --nodeps ~/download/*

তারপরে আপনার পথে উপযুক্ত অবস্থান যুক্ত করুন।

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