এটি ইতিমধ্যে ভাল উত্তর দেওয়া হয়েছে, কিন্তু আমি এমন একটি পরিস্থিতি পেয়েছি যেখানে আমি অনেকগুলি প্যাকেজগুলিকে "চিহ্নিত" করতে চাই না (এবং তারপরে সেগুলি আনচিহ্নযুক্ত করে autoremove
)।
আপনি স্বতঃপরিবর্তন করতে চান এমন প্যাকেজগুলির তালিকাটি সহজেই সংজ্ঞায়িত করা হয়, তবে আপনি পাইপ / sed
/ xargs
এগুলি আউট করতে পারেন ।
আমার কাছে অনেকগুলি প্যাকেজগুলির জটিল উদাহরণ নেই তবে আমার যদি নিম্নলিখিত পরিস্থিতিগুলি থাকে:
root@fptc-rsvrd:~# apt-get autoremove
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages will be REMOVED:
libluajit-5.1-2 libluajit-5.1-common linux-headers-4.4.0-141 linux-headers-4.4.0-141-generic linux-headers-4.4.0-143 linux-headers-4.4.0-143-generic linux-headers-4.4.0-146 linux-headers-4.4.0-146-generic
linux-image-4.4.0-141-generic linux-image-4.4.0-143-generic linux-image-4.4.0-146-generic linux-image-extra-4.4.0-141-generic linux-modules-4.4.0-143-generic linux-modules-4.4.0-146-generic
linux-modules-extra-4.4.0-143-generic linux-modules-extra-4.4.0-146-generic linux-signed-image-4.4.0-141-generic pandoc-data
0 upgraded, 0 newly installed, 18 to remove and 19 not upgraded.
After this operation, 907 MB disk space will be freed.
এবং আমি কেবল linux*
প্যাকেজগুলি সরাতে চাই , আমি এটি করতে পারি:
root@fptc-rsvrd:~# apt-get autoremove -s | sed -ne 's/Remv \(linux[^[]*\)\[.*/\1/gp'
linux-headers-4.4.0-141-generic
linux-headers-4.4.0-141
linux-headers-4.4.0-143-generic
linux-headers-4.4.0-143
linux-headers-4.4.0-146-generic
linux-headers-4.4.0-146
linux-signed-image-4.4.0-141-generic
linux-image-extra-4.4.0-141-generic
linux-image-4.4.0-141-generic
linux-modules-extra-4.4.0-143-generic
linux-image-4.4.0-143-generic
linux-modules-extra-4.4.0-146-generic
linux-image-4.4.0-146-generic
linux-modules-4.4.0-143-generic
linux-modules-4.4.0-146-generic
সুতরাং এখান থেকে, xargs
কমান্ড-লাইন আর্গুমেন্ট হিসাবে সাধারণগুলিতে এগুলি পাস করা সহজ apt-get remove -y
:
apt-get autoremove -s \
| sed -ne 's/Remv \(linux[^[]*\)\[.*/\1/gp' \
| xargs apt-get remove -y
সাধারণত ব্যবহার করার সময় xargs
, আমি আর্গুমেন্টের (যেমন, find ... -print0 | xargs -0 ...
) ফাঁকা জায়গা থেকে রক্ষা করি , তবে প্যাকেজের নামগুলির মধ্যে ফাঁকা স্থান না থাকায় আমি নিউলাইন-বিস্মৃত আর্গুমেন্টগুলি ব্যবহার করে স্বাচ্ছন্দ্য বোধ করি।
(আমি এটি অন্য পরিস্থিতিতে মনে করি, একটি হোল্ড "চিহ্নিত" করা আরও উপযুক্ত হবে, প্যাকেজগুলি আনহোল্ড করুন That এটিও রেজেক্সেস দিয়ে করা যেতে পারে এবং xargs
তবে সম্ভবত পরিস্থিতি ওভার ইঞ্জিনিয়ারিং is)