ডেবিয়ান জেসি অনেকগুলি ব্যাকপোর্টগুলি ইনস্টল করছে


9

আমার সাথে ডেবিয়ান জেসি রয়েছে এবং ব্যাকপোর্টগুলি যোগ করা হয়েছে ( এই নির্দেশাবলী অনুসারে ):

echo "deb http://http.debian.net/debian jessie-backports main contrib non-free" | sudo tee /etc/apt/sources.list.d/backports.list

(আমি আমার ল্যাপটপের কিছু হার্ডওয়ারের জন্য আমার যেমনটি প্রয়োজন তত নতুন কার্নেলটি পেতে এটি করেছি did)

নির্দেশাবলী বলে যে কিছুই হওয়া উচিত নয়, যদি না আমি স্পষ্টভাবে ব্যাকপোর্টেড প্যাকেজটির জন্য জিজ্ঞাসা করি। যেমন apt-get -t jessie-backports install "package"

তবে আমি এখন ব্যাকপোর্টগুলি থেকে আমার সিস্টেমের পুরো বোঝা পেয়েছি এবং একটি প্যাকেজ আন-ইনস্টল করা হয়েছে কারণ এটি একটি সঠিক সংস্করণের উপর নির্ভর করে যা ব্যাক-পোর্টগুলিতে আপডেট হয়েছিল।

সুতরাং আমার প্রশ্ন:

  • আমি কীভাবে প্রথমে এটি বন্ধ করব, যাতে আর কোনও ব্যাকপোর্ট ইনস্টল না হয়?
  • আমি কীভাবে বিদ্যমান ব্যাকপোর্টগুলি সরিয়ে ফেলব?

দ্রষ্টব্য: এটি ইনস্টল করা প্যাকেজগুলির একটি তালিকা পেয়েছে যা ব্যাকপোর্টগুলি থেকে আসে (এবং বিন্যাসে যে apt-get installকোনও কারণে sudo apt-get installপাইপলাইনের শেষে প্রতিধ্বনি স্থাপন করা কাজ করে না):

cat /var/log/dpkg.log.1 |grep -v linux | grep -v xserver | grep -v firmware | grep "status installed" | grep bpo | cut -d" " -f 5 | cut -d: -f 1 | xargs -i{} -n1 bash -c "dpkg-query -s {} >/dev/null && echo {}" | sed -r -e "s~.*~\0/jessie~" | xargs echo

সতর্ক করা:

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

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

উত্তর:


10
  1. নিম্নলিখিত /etc/apt/apt.confবা অন্য কোনও ফাইলের সাথে নিম্নলিখিতগুলি যুক্ত করার চেষ্টা করুন /etc/apt/apt.conf.d:

    APT::Default-Release "jessie";

  2. বিদ্যমান ব্যাকপোর্টগুলি অপসারণ করতে আপনাকে কোনটি ইনস্টল করা হয়েছে এবং কোন সংস্করণটি তারা প্রতিস্থাপন করেছে তার একটি তালিকা পেতে হবে। ভাগ্যক্রমে, এই তথ্যটি খুব সহজেই এখান থেকে বের করা যেতে পারে/var/log/dpkg.log

যেমন grep ' upgrade ' /var/log/dpkg.logআপনাকে নীচের মত অনেকগুলি লাইন দেবে:

2016-02-15 11:06:32 upgrade python-numpy:amd64 1:1.11.0~b2-1 1:1.11.0~b3-1

এটি বলে যে 15 ই ফেব্রুয়ারি সকাল 11:06 এ আমি পাইথন-নম্পি সংস্করণ 1: 1.11.0 ~ বি 2-1 থেকে সংস্করণ 1: 1.11.0 ~ বি 3-1 তে আপগ্রেড করেছি

আমি যদি পূর্ববর্তী সংস্করণে ডাউনগ্রেড করতে চাইতাম তবে আমি চালিতাম:

apt-get install python-numpy=1:1.11.0~b2-1

দ্রষ্টব্য: এই বিশেষ ক্ষেত্রে, এটি সম্ভবত কাজ করবে না কারণ আমি ডেবিয়ান sidওরফে চালাচ্ছি unstableসুতরাং পুরাতন সংস্করণ সম্ভবত আর কোনও ডিপ সংগ্রহস্থলে পাওয়া যায় না। আপনি যদি চালাচ্ছেন jessieএবং জেসি-ব্যাকপোর্ট সংস্করণে ডাউনগ্রেড হিসাবে প্যাকেজের জেসি সংস্করণটি পুনরায় ইনস্টল করছেন , এটি প্রত্যাশার মতো কাজ করবে।

একইভাবে, যদি একটি প্যাকেজ সরানো হয়েছে আপনি এটা এবং জন্য grepping দ্বারা তার সঠিক সংস্করণ খুঁজে পেতে পারেন remove/var/log/dpkg.log


অনেকগুলি প্যাকেজের বাল্ক ডাউনগ্রেডিং awkএবং এর মতো মানক সরঞ্জামগুলি ব্যবহার করে মূলত স্বয়ংক্রিয়ভাবে তৈরি করা যেতে পারে grep। উদাহরণস্বরূপ, যদি আপনি জানেন যে আপনার ইনস্টল করা জেসি-ব্যাকপোর্টগুলি আপগ্রেডগুলি একটি নির্দিষ্ট দিনে সম্পন্ন হয়েছিল (উদাহরণস্বরূপ 2016-02-15) তবে আপনি পূর্ববর্তী সংস্করণগুলিতে এই জাতীয় কিছু দিয়ে ডাউনগ্রেড করতে পারেন:

 apt-get -d -u install $(awk '/2016-02-15 ..:..:.. upgrade / {print $4 "=" $5}'
    /var/log/dpkg.log)

(অনুভূমিক স্ক্রোল-বার এড়ানোর জন্য লাইন-ফিড এবং ইনডেন্টেশন যুক্ত করা হয়েছে)

-d( --download-only) বিকল্পটির ব্যবহারটি লক্ষ্য করুন । কমান্ডটি পুনরায় চালনা করুন এবং apt-get installআপনি যা যা চান তা যাচাই করবে এবং যা আপনি চান তা যাচাই করার পরে সেই বিকল্পটি সরিয়ে ফেলুন ।

আমি awkপ্রথমে কেবলমাত্র সেই আদেশের অংশটি চালানোর পরামর্শ দেব যাতে আপনি ঠিক কী প্যাকেজ এবং সংস্করণগুলি পুনরায় ইনস্টল করা হবে তার একটি তালিকা দেখতে পাবেন।


1
'মজবুতভাবে স্বয়ংক্রিয়' দ্বারা আমি বোঝাতে চাইছি এটি বেশিরভাগ সমস্যা ছাড়াই কাজ করবে, এটি সর্বদা নিখুঁতভাবে চলবে না (জড়িত সঠিক প্যাকেজগুলির উপর নির্ভর করে এবং তাদের উপর নির্ভর করে / প্রস্তাবিত / বিবাদ / অন্যান্য লাইন)। সেখানে এক বা দুই প্যাকেজ আপনি নিজে ইনস্টল অথবা আনইনস্টল সঙ্গে পারেন আছে হতে পারে apt-getবা dpkg। যতক্ষণ না আপনি আতঙ্কিত হবেন না, চিন্তার কিছু নেই। প্যাকেজিং সিস্টেমগুলির সাথে বেশিরভাগ সমস্যাগুলি আতঙ্কিত এবং চিন্তা না করে প্রতিক্রিয়া করার কারণে ঘটে .... এটিকে আস্তে আস্তে নিন এবং আপনার অভিনয়ের আগে চিন্তা করুন।
ক্যাস

তিনি কি নতুন কার্নেল প্যাকেজগুলি @ ক্যাসের ব্যাকপোর্টগুলিতে পিন করবেন না?
রুই এফ রিবেইরো

এটি ক্ষতিগ্রস্থ হবে না তবে এটি প্রয়োজনীয় নয় এবং পিনিংটি কেবলমাত্র এপ :: :: ডিফল্ট-রিলিজ সেট করার চেয়ে সঠিকভাবে পাওয়া বেশ জটিল এবং জটিল। apt-getইতিমধ্যে ইনস্টল করা প্যাকেজটি ডাউনগ্রেড করবে না যতক্ষণ না আপনি এটি স্পষ্টভাবে না বলুন। এবং @রিচার্ড বলেছিলেন যে jessieতিনি স্পষ্টভাবে উল্লেখ না করা পর্যন্ত তিনি ডিফল্টরূপে প্যাকেজ ইনস্টল করতে চেয়েছিলেন jessie-backports- আমি ধারণা করি যে কার্নেল প্যাকেজগুলিতেও ইচ্ছা প্রযোজ্য।
ক্যাস

তিনি বলেছিলেন যে জেসিতে কর্নেল ৪ রাখার জন্য আমার মতো সম্ভবত একটি নতুন কার্নেল রাখার জন্য তিনি ব্যাকপোর্টগুলি অন্তর্ভুক্ত করেছিলেন।
রুই এফ রিবেইরো

1
আমার ধারণা, যে লোকেরা stable+ ব্যবহার করেন তারা stable-backportsসম্ভবত পিনিং সম্পর্কে আমার চেয়ে অনেক বেশি যত্নশীল এবং এ সম্পর্কে আরও জানার চেষ্টা করেছেন। আমি unstableআমার সিস্টেমে সর্বনিম্ন সিড আপ করতে নিয়মিত চালিয়ে যাচ্ছি এবং নিয়মিত রাখি (মাঝে মাঝে অতিরিক্ত থেকে experimental) সাথে পিন করার দরকার নেই। জিনোম 3-এ স্থানান্তরের সময় আমি যখন কেবলমাত্র ভারীভাবে এটি ব্যবহার করেছি তখন যখন আমি আমার জিনোম 2 প্যাকেজগুলি প্রতিস্থাপন করতে চাইনি - আমার মনে আছে যে প্যাকেজের ক্রমাগত পরিবর্তিত তালিকার তালিকাটি পিআইটিএ বজায় রাখা ছিল। আমি তখন থেকে xfce এবং জিনোমকে মুছে ফেলেছি।
ক্যাস

1

মনে হচ্ছে আপনার ঠিকঠাক সেটআপ নেই /etc/apt/preferences। নিম্নলিখিতটি জেসি-ব্যাকপোর্টগুলি থেকে ইনস্টল হতে কোনও কিছুই প্রতিরোধ করবে যা এটি ইনস্টল করতে বলে কি আশা করে (যেমন ব্যাকপোর্টেড কার্নেল)। নির্দিষ্ট প্যাকেজগুলির তালিকাভুক্ত নয় এমন ব্যাকপোর্টগুলি থেকে অন্যান্য প্যাকেজগুলির প্রয়োজন হলে আপনার এখনও সমস্যা থাকবে।

Package: *
Pin: release n=jessie-backports
Pin-Priority: -1

Package: *
Pin: release n=jessie
Pin-Priority: 1000

# this will allow you to not have to use '-t jessie-backports install'
Package: linux-doc linux-headers-amd64 linux-image-amd64 linux-source
Pin: release n=jessie-backports
Pin-Priority: 1000

আপনি যদি ইনস্টল করা ব্যাকপোর্ট প্যাকেজগুলির একটি তালিকা পেতে চান তবে নীচের স্ক্রিপ্টটি (বা এর কিছু অংশ) ব্যবহার করতে পারেন:

chmod a+x name_of_script ./name_of_script > name_of_output_file

#!/bin/bash
RELEASES="jessie-backports"

echo  "Searching for installed packages from" >&2
echo $RELEASES | sed s/^/" * "/ | sed s/\|/"\n * "/g >&2

for package in $(dpkg -l | grep -i ^ii | awk '{print $2}')
do
check=$( apt-cache policy $package 2>&1 | grep -i -A 1 "[*]" | egrep $RELEASES )
if [ "$check" == "" ] ; then
 echo -ne "." >&2
else
 echo -ne "#" >&2
 echo
 apt-cache policy $package
fi
done
echo >&2
echo

আপনি যদি উপরের স্ক্রিপ্ট দ্বারা তালিকাভুক্ত কোনও প্যাকেজকে ডাউনগ্রেড করতে চান তবে নিম্নলিখিতগুলিতে সংযোজন করুন /etc/apt/preferences:

Package: package1 package2 package3
Pin: release n=jessie
Pin-Priority: 1000

তারপরে চালান:

sudo apt-get upgrade

1

/ Etc / apt / পছন্দসই এবং /etc/apt/preferences.d/ এপিটিতে আপনার পিনিং কনফিগারেশনটি পরীক্ষা করুন

আপনি কি কাস্টম পিনিং কনফিগারেশন যুক্ত করেছেন এবং এটি ভুলে যেতে পারেন এটি কি সম্ভব? এটিই কেবলমাত্র আমি ভাবতে পারি যে এটি আপনার সাথে কাজ করে বলে মনে হচ্ছে এপটি ব্যাকপোর্টগুলিকে পছন্দ করবে। অন্যথায়, এটি কেবল নির্ভরতা টানছে - যা আপনার নির্দিষ্ট করা প্যাকেজগুলির প্রয়োজন।

অফিসিয়াল ব্যাকপোর্টগুলি ইতিমধ্যে ব্যাকপোর্টে প্যাকেজগুলিতে রিলিজ ফাইলের জেসির তুলনায় জেসির তুলনায় কম (100) পিন করা হয়েছে ব্যাকপোর্টস রেপোতে। জেসি-ব্যাকপোর্টের চেয়ে জেসি পছন্দ করে তুলতে আপনাকে কোনও অ্যাপ্ট কনফিগারেশন করতে হবে না।

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