.Deb প্যাকেজ এবং সমস্ত নির্ভরতা কিভাবে ডাউনলোড করবেন?


14

এই বিষয় সম্পর্কে আমি যে সমস্ত উত্তর পেয়েছি তার জন্য, সমাধানটি তৈরি করা হয়েছিল, একটি নির্দিষ্ট কম্পিউটার এ যেখানে আমাকে প্যাকেজ ইনস্টল করতে হবে, একটি ফাইলের প্রয়োজন যা সমস্ত নির্ভরতা যুক্ত করে এবং তারপরে এটি অন্য কম্পিউটারে ডাউনলোড করা যায়, আসুন এটি কল করুন বি।

জিনিসটি হ'ল, আমি কিছু সমালোচনামূলক সফ্টওয়্যার সঞ্চয় করতে চাই যা পরে আমার ডেস্কটপটি ফর্ম্যাট করতে হয় সেগুলি পরে অফলাইনে ইনস্টল করতে সক্ষম হতে আমার কাজ করা উচিত।

আমি আমার কম্পিউটারে প্রচুর রিন্ডানড .ডেব ফাইল রাখার বিষয়ে যত্ন নিই না, এবং আমি যদি 10 এমবি সফ্টওয়্যার ইনস্টল করার জন্য 1 জিবি ফাইল সঞ্চয় করতে যাচ্ছি তবে আমি সত্যিই যত্নবান নই।

সুতরাং, আমি কোনও সম্ভাব্য নির্ভরতা ডাউনলোড করতে চাই। আমি কি এইভাবে কিছু করতে পারি?


উত্তর:


22

আমি এই সাথে যেতে হবে:

apt-get download PACKAGE && apt-cache depends -i PACKAGE | awk '/Depends:/ {print $2}' | xargs apt-get download

তারপরে আপনি dpkg -i *.debযে ডিরেক্টরিটি ডাউনলোড করেছেন তাতে এটি ইনস্টল করতে পারেন ।


1
আমি মনে করি এটি কাজ করেছে, আপনাকে অনেক ধন্যবাদ। আপনাকে আবারও ধন্যবাদ জানাতে ফিরে আসার আগে আমি আরও
কিছুবার

অজক এবং এক্সগার্স কমান্ডগুলি আমাকে কী ব্যাখ্যা করতে পারে? আমি কেবল লিনাক্স ব্যবহার শুরু করছি এবং এর আগে এই 2 টি কমান্ড আমি কখনই দেখিনি
ebernardes

apt-cache depends -iপ্যাকেজের জন্য গুরুত্বপূর্ণ নির্ভরতাগুলি পরীক্ষা করবে। এটি কেবলমাত্র কার্যকর করা apt-get download PACKAGEহবে যদি আপনি যুক্ত পিপিএ সংগ্রহস্থলগুলির মধ্যে প্যাকেজ সন্ধান করতে সফল হন /etc/apt/sources.list। এখন, apt-cache depends -i PACKAGEফর্ম আউটপুট আছে Depends: dependency-name। আমাদের কেবল নির্ভরশীলতার নাম প্রয়োজন, তাই এটি কী করণীয় তা করছে - এটি কেবল দ্বিতীয় স্ট্রিং পাচ্ছে। উদাহরণস্বরূপ, চেষ্টা করে দেখুন apt-cache depends -i vim | awk '{print $2}' । আরও মনে রাখবেন, && এর ডানদিকে পুরো লাইনটি একটি বিবৃতি হিসাবে বিবেচনা করা যেতে পারে
সের্গি কলডিয়াজহনি

1
ধন্যবাদ! তবে আমি কিছু গবেষণা করেছি, এবং আমি '/ of </ d' কমান্ডটি ব্যবহার করেছি অ্যাপ্লিকেশন-ক্যাশের কিছু আউটপুট মুছে ফেলার জন্য, এটি ইতিমধ্যে ভাল ছিল, তবে এখন প্রতিটি ক্ষেত্রেই চেষ্টা করছি যা চেষ্টা করছি। অনেক ধন্যবাদ!
ইবার্নার্ডস

dpkg -i *.debএতটা ভাল নয়, নির্ভরতা আদেশের মাধ্যমে এটি প্যাকেজ ইনস্টল করে না। সুতরাং, সমস্ত প্যাকেজ ইনস্টল করতে আপনার বেশ কয়েকবার চেষ্টা করার প্রয়োজন হতে পারে। যাইহোক workaround?
মিথিল

1

এটি কি এককালীন জিনিস, বা এমন কিছু যা আপনি আপডেট রাখতে চান? আপনি কি বেশিরভাগ অনলাইন কাজ করছেন এবং কেবলমাত্র আপনার সমস্ত প্যাকেজের স্থানীয় ব্যাকআপ চান?

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

আমার পছন্দের অ্যাপ্ট ক্যাশে প্রায় , তবে এপ্ট-ক্যাচার-এনজি এবং আরও কয়েকটি রয়েছে। প্রতিটি ক্যাশে কীভাবে কনফিগার করা যায় তা সম্পর্কে সামান্য পার্থক্য রয়েছে।

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


এটি এমন একটি বিষয় যা আমি ঠিক রাখতে চাই, যদি আমি পরে কিছু আপডেট করতে পারি তারপরে, আমার যদি দ্রুত কোনও সফ্টওয়্যার ইনস্টল করতে হয় তবে এটি একটি পুরানো সংস্করণ হলেও। আমি এটি যাচাই করব, ধন্যবাদ :)
এরবার্ডেস

0

নিম্নলিখিত পাইথন প্রোগ্রাম চালান:

import subprocess
package=input("insert package name:")
t=subprocess.run(["apt-cache", "depends", "-i", package], stdout=subprocess.PIPE)
if t.stderr or t.returncode:
    print(t.stdout)
    exit(t.stderr)
#print(":", t.stdout)
needed_pacages=t.stdout.split(b"Depends: ")
print(package, "depends of", needed_pacages)
for choices in needed_pacages:
    one_choice_made=False
    for needed_package in choices.split(b"\n"):
        needed_package=needed_package.strip(b"\n ")
        t=subprocess.run(["apt-get", "download", needed_package])
        if t.stderr or t.returncode:
            print("ERROR: Status: {p.returncode}, stdout: {p.stdout}, stderr: {p.stderr}".format(p=t), "package name:", needed_package)
        else:
            one_choice_made = True
            #print("downloaded",vajalik_pakk)
            break
    if not one_choice_made:
        print("could not get one of dependecies", choices)

1
এবং কেন এটি গৃহীত উত্তরের চেয়ে ভাল?
র‌্যালফ্রেডল

0

পাইথন 3 প্রোগ্রামটি চালান:

import subprocess
olemas_olevad_pakid=set()
def r(pakk):
    t=subprocess.run(["apt-get", "download", pakk])
    if t.stderr or t.returncode:
        #print("could not load package: Status: {p.returncode}, stdout: {p.stdout}, stderr: {p.stderr}".format(p=t), "paki nimi:", pakk)
        return False
    olemas_olevad_pakid.add(pakk)
    t=subprocess.run(["apt-cache", "depends", "-i", pakk], stdout=subprocess.PIPE)
    if t.stderr or t.returncode:
        print(t.stdout)
        exit(t.stderr)
    #print(":", t.stdout)
    needed_pacages=t.stdout.split(b"Depends: ")[1:]
    #print(pakk, "needs packages:", needed_pacages)
    for choices in needed_pacages:
        one_choice_made=False
        for needed_package in choices.split(b"\n"):
            needed_package=needed_package.strip(b"\n ")
            if needed_package in olemas_olevad_pakid or r(needed_package):
                one_choice_made=True
                break
        if not one_choice_made:
            print("PROBLEM: could not download any of", choices)
            return False
    return True
#for pakk in packages_to_download:
#    print("pakk:",pakk)
#    r(pakk)
r(input("package name:"))

এটি কেবল তাত্ক্ষণিক নির্ভরতা নয় সমস্ত নির্ভরশীলতার সমস্ত নির্ভরশীলতা ডাউনলোড করবে। তবে এগুলি ইনস্টল করা dpkg -i *.debব্যর্থ। হতে পারে কারণ apt-cache depends -i packageভুল তথ্য দেয় বা কিছু কিছু ডেড ফাইল ইনস্টল করার জন্য এখনও ইন্টারনেট সংযোগ প্রয়োজন।


এটি ব্যর্থ হতে পারে কারণ dpkg সঠিক ক্রমে প্যাকেজগুলি ইনস্টল করছে না। সমস্ত নির্ভরতা ইনস্টল না হওয়া পর্যন্ত আপনি কয়েকবার dpkg আবার চেষ্টা করতে চাইতে পারেন।
ব্ল্যাক আউল কাই
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.