স্থানীয় ডিরেক্টরিতে প্যাকেজ ইনস্টল করছেন?


38

আমি সফ্টওয়্যার প্যাকেজ ইনস্টল করতে চাই তবে এর মতো apt-get install <foo>:

  1. ছাড়া sudo, এবং
  2. স্থানীয় ডিরেক্টরিতে

এই অনুশীলনের উদ্দেশ্য হ'ল আমার ক্রমাগত ইন্টিগ্রেশন সার্ভারে স্বতন্ত্র বিল্ডগুলি বিচ্ছিন্ন করা ।

উত্স থেকে সংকলন করতে আমার আপত্তি নেই, যদি এটি যা লাগে তবে স্পষ্টতই আমি সম্ভাব্যতম সহজ পদ্ধতির পছন্দ করি। আমি এখানেapt-get source --compile <foo> উল্লিখিত হিসাবে চেষ্টা করেছি কিন্তু আমি এটি অটোকনফের মতো প্যাকেজগুলির জন্য কাজ করতে পারি না। আমি নিম্নলিখিত ত্রুটি পেয়েছি:

dpkg-checkbuilddeps: Unmet build dependencies: help2man

আমি একটি স্থানীয় ডিরেক্টরিতে সংকলিত সাহায্য2 লোক পেয়েছি, তবে কীভাবে এটিকে কীভাবে জানাতে হয় তা আমি জানি না। কোন ধারনা?

আপডেট : আমি একটি উত্তর পেয়েছি যা প্রায় https://askubuntu.com/a/350/23678 এ কাজ করে । সমস্যাটি chrootহ'ল এটির জন্য সুডো দরকার। সমস্যাটি apt-get sourceহ'ল আমি জানি না কীভাবে নির্ভরতাগুলি সমাধান করা যায়। আমি অবশ্যই বলব, chrootদেখতে খুব আবেদনময়ী। একটি সমমানের কমান্ড আছে যে sudo প্রয়োজন হয় না?


আমি প্রস্তাব দিচ্ছি যে এটি এই প্রশ্নের সদৃশ: [জিজ্ঞাসাবাবু / প্রশ্ন / 147654/… [1]: জিজ্ঞাসুবন্টু

7
@ কামিল, তা নয়। আমি নেটওয়ার্ক অ্যাক্সেস ছাড়াই ইনস্টল করার চেষ্টা করছি না। আমি sudoনন-সিস্টেম ডিরেক্টরি ছাড়াও এবং ইনস্টল করার চেষ্টা করছি ।
গিলি

4
বন্ধুরা, দয়া করে কেন তা ব্যাখ্যা না করে আমার প্রশ্নটিকে হ্রাস করবেন না । ধন্যবাদ.
গিলি

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

@ জানুয়ারি, আমি একটি স্বয়ংক্রিয় বিল্ড সিস্টেমের ভিতরে একটি সফ্টওয়্যার প্রকল্প সংকলন করার চেষ্টা করছি। আমি যতদূর জানি, এর নির্ভরতাগুলির কোনওটিরই (সংকলন করা প্রয়োজন) মূলের প্রয়োজন হয় না।
গিলি

উত্তর:


20

এটি সাধারণভাবে অযোগ্য, কারণ আপনি অ্যাপ্লিকেশন নির্ভরতা সিস্টেমের সাথে গোলমাল করবেন।

দুটি সমাধান রয়েছে:

  1. উত্স প্যাকেজ ইনস্টল করুন, উত্স ডিরেক্টরিতে পরিবর্তন করুন, প্যাকেজিং সিস্টেম নির্বিশেষে প্যাকেজটি আপনার পছন্দসই ডিরেক্টরিতে নির্ধারণ করুন এবং ইনস্টল করুন।

    apt-get source <package>
    

    এটির মূল প্রয়োজন হয় না, প্যাকেজ উত্স ডাউনলোড করে, বর্তমান ডিরেক্টরিতে ডিরেক্টরিতে এটি প্যাক করে। এরপরে আপনি সেই ডিরেক্টরিতে পরিবর্তন করতে পারেন, উত্সে পরিবর্তন আনতে পারেন, ইনস্টলেশনটিকে অন্য লক্ষ্যতে কনফিগার করতে পারেন ইত্যাদি

    প্রোগ্রামগুলি কোন ইনস্টলেশন ডিরেক্টরিতে যাওয়া উচিত তা কনফিগার করা নির্দিষ্ট প্রোগ্রামের উপর নির্ভর করে। অনেক প্রোগ্রাম ./configure --prefix localdirইনস্টলেশনকে লোকালডায়ারে টার্গেট করতে ব্যবহার করে ; তবে এটি সবসময় হয় না।

  2. একটি ক্রুট পরিবেশ তৈরি করুন যেখানে আপনি প্যাকেজগুলি ইনস্টল করবেন:

    debootstrap precise myfancyinstall
    

    এখন আপনি মাইফেন্সিস্টল / ডিরেক্টরিতে একটি ডামি ইনস্টলেশন তৈরি করেছেন

    chroot myfancyinstall
    

    আপনি যা ইচ্ছা ইন্সটল করতে chroot খাঁচার মধ্যে অ্যাপটি-গেট ইনস্টল ব্যবহার করতে পারেন।


এটি আশাব্যঞ্জক মনে হচ্ছে। ব্যবহার apt-get sourceছাড়া --compileunmet নির্ভরতা সম্পর্কে সতর্কবার্তা দমন করতে (আমাকে তাদের নিজেকে সমাধান করতে সক্ষম হবেন) বলে মনে হয়
Gili থেকে

প্যাকেজগুলি পাওয়ার কোনও উপায় আছে যার কোনও উত্স নেই?
soandos

সমাধান (2) নির্বিশেষে কাজ করবে। অন্যথায়, আপনি নিজেরাই: প্যাকেজ ইনস্টলের আরও একটি উপায়ও থাকতে পারে। অথবা ডিবে প্যাকেজ ফাইলটি ডাউনলোড করুন এবং এআর: দিয়ে আনপ্যাক করুন ar vx mypackage.deb। তারপরে প্যাকেজের সামগ্রীগুলি বিশ্লেষণ করুন এবং কীভাবে এটি ম্যানুয়ালি ইনস্টল করবেন তা সন্ধান করুন।
জানুয়ারী

14

বাশ শেল ব্যবহার করে এবং "প্যাকেজ.দেব" ফাইলটি অর্জন (প্যাকের নামটি "প্যাকেজ" অনুমান করে) আপনি যা চান তা করতে নিম্নলিখিত কমান্ডটি চালাতে পারেন - প্যাকেজটি ইনস্টল করা যাতে আপনার বাড়ির ডিরেক্টরিটি একইরকম আচরণ করা হয় "/ "একটি সাধারণ ইনস্টলে চিকিত্সা করা হবে।

এই হুকুম:

apt-get download package; dpkg -i --force-not-root --root=$HOME package.deb

আপনি কিছু ত্রুটির মুখোমুখি হতে পারেন, যেমন OME HOME / var / lib / dpkg / લોક অনুপস্থিত, তাই কেবলমাত্র ত্রুটিগুলি থেকে পাওয়া সমস্ত অনুপস্থিত ফাইলগুলি তৈরি করুন এবং তারপরে ইনস্টলটি sudo ছাড়াই কাজ করা উচিত।

লক্ষ্য করুন যে "অ্যাপটি-ডাউনলোড ডাউনলোড" যদি কাজ করে না, আপনি "অ্যাপটি ডাউনলোড" বা "অ্যাপিটুট ডাউনলোড প্যাকেজ" চেষ্টা করতে পারেন।

যদি কোনও পদ্ধতিই কাজ না করে তবে আপনি কেবল প্যাকেজটি http://packages.ubuntu.com/ থেকে ডাউনলোড করতে পারেন download

আর একটি পদ্ধতি হ'ল প্যারামিটার $ হোম দিয়ে ক্রুট কমান্ড চালানো এবং তারপরে উপরের মতো একই পদ্ধতিতে ইনস্টল করা --root = $ হোম ছাড়া without এই কমান্ডটি আপনাকে এমন একটি শেল এনে দেবে যেখানে "/" আপনার বর্তমান $ হোম রয়েছে। স্বাভাবিক মোডে ফিরে যেতে "প্রস্থান" করতে ভুলবেন না

শুভকামনা


নিখোঁজ ফাইলগুলি তৈরি করার পরে dpkg অভিযোগ করেছে, এটি কেবল সেগফল্টিং শুরু করেছে।
ম্যাট চেম্বারস

0

আপনি যদি sshঅ্যাক্সেস সহ কোনও শেয়ার্ড ওয়েব-হোস্টারে থাকেন তবে apt-getকোনও মূল নেই or এটি uname -aএমন একটি সিস্টেমে আমার জন্য কাজ করেছিল যেখানে এমন কিছু ফিরে আসেSMP Debian 4.9.65-3+deb9u2~bpo8+1 (2017-01-05) x86_64 GNU/Linux

# examples tried on a shared hoster with ssh access but no apt-get no root etc.
# http://mirrors.kernel.org/ubuntu/pool/main/g/gawk/gawk_4.1.3+dfsg-0.1_amd64.deb
# https://github.com/dvorka/hstr/releases/download/1.25/hstr_1.25-1_amd64.deb

debURL="http://mirrors.kernel.org/ubuntu/pool/main/g/gawk/gawk_4.1.3+dfsg-0.1_amd64.deb"
# get the filename only, remove all till last slash "/"
# see http://wiki.bash-hackers.org/syntax/pe#substring_removal
debFile=${debURL##*/}
# change to your desired directory for installation/unpacking; here: $HOME
cd $HOME
# get the .deb file (no dependencies checked or resolved here)
curl -OL $debURL 
# unpack only the data part from the .deb file
# see https://en.wikipedia.org/wiki/Deb_%28file_format%29
ar p $debFile data.tar.xz | tar xJv --strip-components=2 -f - 
rm -v $debFile # clean up
echo "Done unpacking $debFile into $(pwd)"
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.