সুডো সুবিধা ছাড়াই কীভাবে স্থানীয়ভাবে প্রোগ্রাম ইনস্টল করবেন?


73

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

এর মতো কিছু ব্যবহার না করে সেগুলি ইনস্টল করার (তাদের চালানোর জন্য) উপায় আছে কি sudo apt-get install?



এছাড়াও দেখুন স্থানীয় নির্বাহযোগ্য কোথায় রাখা উচিত? প্রাসঙ্গিক আলোচনার জন্য।
জর্জ এম



উত্তর:


33
  1. সংকলন এবং ইনস্টল করুন ~/bin(এবং এটি অন্তর্ভুক্ত .bashrcকরতে সেট করতে আপনার সম্পাদনা করুন PATH)। গ্রন্থাগারগুলি একইভাবে সংকলন এবং ইনস্টল করা যেতে পারে ~/lib( LD_LIBRARY_PATHএটি নির্দেশ করতে সেট করা) এবং বিকাশ শিরোনামগুলি উদাহরণস্বরূপ ইনস্টল করা যেতে পারে ~/includes

  2. আপনি যে প্রোগ্রামগুলি ইনস্টল করতে চান সেগুলির নির্দিষ্ট বিবরণ এবং সেগুলির উপর নির্ভরশীল লাইব্রেরিগুলির উপর নির্ভর করে আপনি .deb ফাইল ডাউনলোড করতে পারেন এবং dpkg-deb -xআপনার হোম ডিরেক্টরি নীচে সেগুলি বের করতে ' ' ব্যবহার করতে পারেন । তারপর আপনি এর "মজা" সেটিং অনেক আছে হবে PATH, LD_LIBRARY_PATHএবং অন্যান্য variables। আপনি যত বেশি জটিল প্রোগ্রাম বা অ্যাপ্লিকেশন ইনস্টল করছেন তত বেশি মজা পাবেন :)

    আপনি অবশ্যই setuidএই পদ্ধতিতে বাইনারিগুলি ইনস্টল করতে সক্ষম হবেন না - তারা ইনস্টল করবেন তবে (যেহেতু আপনি তাদেরকে রুট করার জন্য বা setuidবিট সেট করার অনুমতি নেই) তারা কেবল আপনার মালিকানাধীন স্বাভাবিক বাইনারি হবে ।

    একইভাবে, ডেমনস এবং সিস্টেম পরিষেবাদি যা নির্দিষ্ট হিসাবে চলবে UIDবা ইউআইডি পরিবর্তন করার ক্ষমতা রাখে বা ফাইলগুলির /etcপরিবর্তে প্রত্যাশা করে বা ~/etcএগুলি আরও ভালভাবে কাজ করার সম্ভাবনা রাখে না।

  3. সর্বাধিক sysadmins বিবেচনা করবে mcএবং mcedit"বেশিরভাগ নিরীহ", নির্দোষ প্রোগ্রাম যাবে।

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


আমি শুনেছি সেটিংটি LD_LIBRARY_PATHএকটি দুষ্ট হ্যাক । এটি কি এখানেও প্রযোজ্য, বা আমি ভুল বুঝেছি?
ভসডেন

1
LD_LIBRARY_PATH সেটিং সহ সমস্ত সমস্যা প্রযোজ্য। হ্যাঁ, এটি একটি খারাপ হ্যাক, বা হতে পারে। কখনও কখনও নির্দিষ্ট লক্ষ্য অর্জনের জন্য অশুভ হ্যাকগুলি প্রয়োজনীয় হয় ... "বিধিগুলি" ভঙ্গ করার সময় গুরুত্বপূর্ণ বিষয়টি হ'ল তারা আপনাকে রক্ষা করার জন্য কী ডিজাইন করা হয়েছে তা জানার জন্য তাদের যথেষ্ট ভালভাবে জেনে রাখা এবং কেন আপনাকে এই বিশেষ ক্ষেত্রে কেন সেগুলি ভাঙতে হবে? , এবং কী কী ঝুঁকি রয়েছে বা হতে পারে।
ক্যাস

আমাকে কেবল একটি স্বাধীন প্রোগ্রাম (জুম) ইনস্টল করতে হয়েছিল, তাই প্রথমে আমি ২ য় বিকল্পটি ( dpkg-deb -xএকটি স্থানীয় দির কাছে) চেষ্টা করেছি। কবজির মতো কাজ করেছেন। আমাকে কোন LD_LIBRARY_PATHহ্যাক করতে হয়নি । এমনকি যদি আমার করতে হয় তবে আমি এটি একই কমান্ড লাইনে করব যাতে বিশ্বব্যাপী সেটিংসে প্রভাব না পড়ে (উদাহরণস্বরূপ $ LD_LIBRARY_PATH=/home/usr1/zoom/opt/zoom:/home/usr1/zoom/opt/zoom/zoom ZoomLauncher)।
অ্যান্টনি

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

50

আপনার উত্স থেকে এটি সংকলন করা প্রয়োজন। এটা ঠিক একটি বিষয় হওয়া উচিত

apt-get source PACKAGE
./configure --prefix=$HOME/myapps
make
make install

বাইনারি তারপর অবস্থিত হবে ~/myapps/bin। সুতরাং, যোগ export PATH="$HOME/myapps/bin:$PATH"আপনার টু .bashrcফাইল এবং পুনরায় লোড .bashrcসাহায্যে ফাইল source ~/.bashrc। অবশ্যই, এটি ধরে নিয়েছে যে জিসিসিটি সিস্টেমে ইনস্টল করা আছে।


6
নির্ভরতা কি? তাদের প্রত্যেকের জন্য একই কোড না চালিয়ে স্বয়ংক্রিয়ভাবে হ্যান্ডেল করার কোনও উপায় আছে কি?
ইউরা

1
@ ইউরা না আপনাকে নিজেই এটি করতে হবে না।
উলরিচ ড্যাঙ্গেল

আপনার যদি এই কাজ করার অধিকার না থাকে তবে কী হবে? সুডো / রুট অ্যাক্সেস ছাড়াই সফটওয়্যার সংকলনের অনুমতি পাওয়া কি স্বাভাবিক?
ফ্রিডো

5

আপনি জুএনস্ট ব্যবহার করতে পারেন , এটি ব্যবহারকারীর ডিরেক্টরিতে একটি ছোট লিনাক্স ধারক তৈরি করে, যেখানে আপনি কোনও প্যাকেজ ইনস্টল করতে পারেন।


0

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

  1. আপনার নিয়ন্ত্রণ করা সিস্টেমে সফ্টওয়্যারটি ইনস্টল করুন

  2. এক্সিকিউটেবল উদাহরণটি সন্ধান করুন which pythonএবং এটিতে অনুলিপি করুন~/

  3. এর সাথে গ্রন্থাগারগুলি অনুলিপি করুন:

    ldd "$(which python)"  | grep "=> /" | awk '{print $3}' | xargs -I '{}' cp -v '{}' ~/
    

এক্সিকিউটেবল এবং লাইব্রেরিগুলি অন্য সিস্টেমে স্থানান্তর করুন যেখানে আপনার কেবল স্থানীয় সুবিধা রয়েছে, তারপরে নিম্নলিখিতটি চালান:

mkdir ~/lib
export PATH="$PATH:~/lib"
export LD_LIBRARY_PATH=~/lib:/lib:/usr/lib

এটি ~/libলাইব্রেরিগুলি সঞ্চয় করতে, এটি আপনার পথে যুক্ত করার জন্য এবং এলডিকে সেখানে লাইব্রেরিগুলি দেখতে বলার জন্য একটি ফোল্ডার তৈরি করবে , সুতরাং আপনার এক্সিকিউটেবল এবং সেখানে লাইব্রেরিগুলি যুক্ত করুন, এখন আপনি অন্য কোথাও এটি চালাতে পারবেন

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


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