সংস্করণ সীমাবদ্ধতার সাথে ডাউনলোড করুন pt


18

আমার apt-get downloadএকটি .debফাইলের একটি নির্দিষ্ট সংস্করণ আনতে ব্যবহার করা দরকার তবে সঠিক সংস্করণটি অগত্যা নয়। .debনির্ভরতা যেমন এক্সপ্রেশন ব্যবহার করার অনুমতি দেওয়া হয় >=0.3.0এবং আমি apt-get downloadযেমন নির্ভরতা ব্যবহার করে ডাউনলোড করা হবে তার হিসাবে একই সংস্করণ আনতে চাই ।

সংক্ষেপে এটি, আমি যা কাজ করতে চাই তা হ'ল:

$ apt-get download package='>=0.3.0'

আমি কীভাবে এই কার্যকারিতাটি পেতে পারি তার কোনও ধারণা?


আপনি কেবল প্যাকেজগুলি প্যাকেজগুলি প্যাকেজ.বুন্টু.কম থেকে ডাউনলোড করবেন না কেন ?
টেরডন

কারণ আমার নিশ্চিত হওয়া দরকার যে ডাউনলোড করা প্যাকেজটি হুবহু একই প্যাকেজ যা "apt-get ইনস্টল" সম্পাদন করা হলে ডাউনলোড করা হবে। আমি এটিকে চতুর সম্প্রসারণ স্ক্রিপ্টে অন্তর্ভুক্ত করছি।
মিকোস্জ

উত্তর:


2

আপনি প্রথমে কোন সংস্করণটি আপনার পছন্দসই ন্যূনতম সংস্করণের চেয়ে বড় বা সমান এটিরতমতম সংস্করণটি খুঁজে বের করে এটি করতে পারেন could তারপরে, আপনি ঠিক সেই সংস্করণটি ব্যবহার করে ডাউনলোড করেন apt-get download। এখানে এটির একটি স্ক্রিপ্ট রয়েছে (এটি কিছুটা কুৎসিত, তবে আপনি ধারণাটি পাবেন):

#!/bin/bash

if [ $# -lt 2 ]; then
    echo "Usage: $0 <packagename> <minimum version>"
    exit 1
fi

pkgname="$1"
minversion="$2"

V="0"

for version in `apt-cache madison $pkgname | awk -F'|' '{print $2}'`; do
    echo "Considering $version"
    if dpkg --compare-versions $version ge $minversion; then
        echo "- Version is at least $minversion"
        if dpkg --compare-versions $version gt $V; then
            echo "- This is the newest version so far"
            V=$version
        else
            echo "- We already have a newer version"
        fi
    else
        echo "- This is older than $minversion"
    fi
done

if [ "$V" = "0" ]; then
    echo "There is no version greater than or equal to $minversion"
    exit 1
fi

echo "Selected version: $V"

echo "Downloading"
apt-get download $pkgname=$V
echo "Done"

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


0

যেহেতু আপনি যা apt-get installদিতে চান ঠিক তাই , apt-get installএকটি কাস্টম আর্কাইভ ডিরেক্টরি ব্যবহার করে 'কেবলমাত্র ডাউনলোড-মোডে' চালানো ভাল হবে :

-d, --download-only
  Download only; package files are only retrieved, not unpacked or installed.
  Configuration Item: APT::Get::Download-Only.

সংরক্ষণাগার ডিরেক্টরিটি কীভাবে পরিবর্তন করবেন? এটি একটি কনফিগারেশন বিকল্প:

FILES
  [...]

  /var/cache/apt/archives/
  Storage area for retrieved package files. Configuration Item: Dir::Cache::Archives.

সেগুলি --optionপ্যারামিটারের সাহায্যে সাময়িকভাবে পরিবর্তন করা যেতে পারে :

-o, --option
  Set a Configuration Option; This will set an arbitrary configuration option. 
  The syntax is -o Foo::Bar=bar.  -o and --option can be used multiple times 
  to set different options.

সংক্ষেপ:

apt-get install -d -o dir::cache::archives="/some/cache/dir" <package>

এই কমান্ডের ডাউনলোড করবে (এবং শুধুমাত্র ডাউনলোড, না ইনস্টল) প্রাসঙ্গিক .debজন্য ফাইল <package>থেকে /some/cache/dir। ডিরেক্টরিটিতে .debপ্যাকেজ, তার নির্ভরতা, একটি লক ফাইল এবং 'আংশিক' ডিরেক্টরি (যা খালি হওয়া উচিত) এর ফাইলগুলি অন্তর্ভুক্ত করবে । আপনার সঠিক .debফাইলটি ফিল্টার করা তুচ্ছ হওয়া উচিত।


দুর্ভাগ্যক্রমে, apt-get installসুপারসার অ্যাক্সেস প্রয়োজন।
মিকোস্জ

0

apt-get downloadআপনি লক্ষ্য রিলিজ সেট করতে পারবেন। এটা সাহায্য করবে না?

apt-get download package/testing

মন্তব্য # 1 (মন্তব্য ব্যবহার করতে পারবেন না) - প্যারামিটার যোগ --print-urisকরতে apt-get installরুট অধিকার প্রয়োজন হয় না (কিন্তু আপনি এটি নিজে ডাউনলোড করতে হবে - সেরা সঙ্গে wget হয় -i FILE_LIST)।


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

0

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

ডেবিয়ান 5 এ:

apt-cache show <pkg> | head | grep -i version 

6 এ আপনি ব্যবহার করতে পারেন:

apt-cache show <pkg> | tail | grep -i version

অ্যাপ্ট-ক্যাশে 5 থেকে 6 এর মধ্যে তালিকার ক্রম অনুসারে আচরণ পরিবর্তন করেছে বলে মনে হয় যাতে 6 এ সর্বশেষতমটি আসে।

একটি সতর্কতার কথা হ'ল আপনি যদি এই আউটপুটটি "যেমন নির্ভরতা ব্যবহার করে ডাউনলোড করা হবে সেই একই সংস্করণটি আনার জন্য" যেমন বলে থাকেন তবে উপলভ্য প্যাকেজের সংস্করণ পরিবর্তন হতে পারে যদি আপনি অ্যাপটি-গেট আপডেট চালান (সাথে আপনি অবশ্যই সংস্করণটি সংগ্রহ করবেন এবং যখন আপনি স্ক্রিপ্টটি চালাবেন যা সংস্করণটি প্রত্যাশা করে এমন জিনিস ইনস্টল করে এবং যদি এটি স্বয়ংক্রিয়ভাবে চালানোর জন্য সেট করা হয়ে থাকে।

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