dpkg: সতর্কতা: প্যাকেজ 'এক্স' অনুপস্থিত জন্য ফাইল তালিকা ফাইল


20

আমি যখনই কোনও প্যাকেজ ইনস্টল করি বা সম্পাদনা করি ততবারে আমি বেশ কয়েকটি প্যাকেজগুলির জন্য এই সতর্কতাটি পাই apt-get upgrade। নিশ্চিত নয় যে কী কারণে এটি ঘটছে; এটি আমার ওপেনভিজেড সার্ভারে একটি নতুন দেবিয়ান ইনস্টল এবং আমি কোনও ডিপিকেজি সেটিংস পরিবর্তন করি নি।

এখানে একটি উদাহরণ:

root@debian:~# apt-get install cowsay
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Suggested packages:
  filters
The following NEW packages will be installed:
  cowsay
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 21.9 kB of archives.
After this operation, 91.1 kB of additional disk space will be used.
Get:1 http://ftp.us.debian.org/debian/ unstable/main cowsay all 3.03+dfsg1-4 [21.9 kB]
Fetched 21.9 kB in 0s (70.2 kB/s)
Selecting previously unselected package cowsay.
dpkg: warning: files list file for package 'libssh2-1:amd64' missing; assuming package has no files currently installed
dpkg: warning: files list file for package 'libkrb5-3:amd64' missing; assuming package has no files currently installed
dpkg: warning: files list file for package 'libwrap0:amd64' missing; assuming package has no files currently installed
dpkg: warning: files list file for package 'libcap2:amd64' missing; assuming package has no files currently installed
dpkg: warning: files list file for package 'libpam-ck-connector:amd64' missing; assuming package has no files currently installed
dpkg: warning: files list file for package 'libc6:amd64' missing; assuming package has no files currently installed
dpkg: warning: files list file for package 'libtalloc2:amd64' missing; assuming package has no files currently installed
dpkg: warning: files list file for package 'libselinux1:amd64' missing; assuming package has no files currently installed
dpkg: warning: files list file for package 'libp11-kit0:amd64' missing; assuming package has no files currently installed
dpkg: warning: files list file for package 'libavahi-client3:amd64' missing; assuming package has no files currently installed
dpkg: warning: files list file for package 'libbz2-1.0:amd64' missing; assuming package has no files currently installed
dpkg: warning: files list file for package 'libpcre3:amd64' missing; assuming package has no files currently installed
dpkg: warning: files list file for package 'libgpm2:amd64' missing; assuming package has no files currently installed
dpkg: warning: files list file for package 'libgnutls26:amd64' missing; assuming package has no files currently installed
dpkg: warning: files list file for package 'libavahi-common3:amd64' missing; assuming package has no files currently installed
dpkg: warning: files list file for package 'libcroco3:amd64' missing; assuming package has no files currently installed
dpkg: warning: files list file for package 'liblzma5:amd64' missing; assuming package has no files currently installed
dpkg: warning: files list file for package 'libpaper1:amd64' missing; assuming package has no files currently installed
dpkg: warning: files list file for package 'libsensors4:amd64' missing; assuming package has no files currently installed
dpkg: warning: files list file for package 'libbsd0:amd64' missing; assuming package has no files currently installed
dpkg: warning: files list file for package 'libavahi-common-data:amd64' missing; assuming package has no files currently installed
dpkg: warning: files list file for package 'libss2:amd64' missing; assuming package has no files currently installed
dpkg: warning: files list file for package 'libblkid1:amd64' missing; assuming package has no files currently installed
dpkg: warning: files list file for package 'libslang2:amd64' missing; assuming package has no files currently installed
dpkg: warning: files list file for package 'libacl1:amd64' missing; assuming package has no files currently installed
dpkg: warning: files list file for package 'libcomerr2:amd64' missing; assuming package has no files currently installed
dpkg: warning: files list file for package 'libkrb5support0:amd64' missing; assuming package has no files currently installed
dpkg: warning: files list file for package 'e2fslibs:amd64' missing; assuming package has no files currently installed
dpkg: warning: files list file for package 'librtmp0:amd64' missing; assuming package has no files currently installed
dpkg: warning: files list file for package 'libidn11:amd64' missing; assuming package has no files currently installed
dpkg: warning: files list file for package 'libpcap0.8:amd64' missing; assuming package has no files currently installed
dpkg: warning: files list file for package 'libattr1:amd64' missing; assuming package has no files currently installed
dpkg: warning: files list file for package 'libdevmapper1.02.1:amd64' missing; assuming package has no files currently installed
dpkg: warning: files list file for package 'odbcinst1debian2:amd64' missing; assuming package has no files currently installed
dpkg: warning: files list file for package 'libexpat1:amd64' missing; assuming package has no files currently installed
dpkg: warning: files list file for package 'libltdl7:amd64' missing; assuming package has no files currently installed
dpkg: warning: files list file for package 'libkeyutils1:amd64' missing; assuming package has no files currently installed
dpkg: warning: files list file for package 'libcups2:amd64' missing; assuming package has no files currently installed
dpkg: warning: files list file for package 'libsqlite3-0:amd64' missing; assuming package has no files currently installed
dpkg: warning: files list file for package 'libck-connector0:amd64' missing; assuming package has no files currently installed
dpkg: warning: files list file for package 'zlib1g:amd64' missing; assuming package has no files currently installed
dpkg: warning: files list file for package 'libnl1:amd64' missing; assuming package has no files currently installed
dpkg: warning: files list file for package 'libfontconfig1:amd64' missing; assuming package has no files currently installed
dpkg: warning: files list file for package 'libudev0:amd64' missing; assuming package has no files currently installed
dpkg: warning: files list file for package 'libsepol1:amd64' missing; assuming package has no files currently installed
dpkg: warning: files list file for package 'libmagic1:amd64' missing; assuming package has no files currently installed
dpkg: warning: files list file for package 'libk5crypto3:amd64' missing; assuming package has no files currently installed
dpkg: warning: files list file for package 'libunistring0:amd64' missing; assuming package has no files currently installed
dpkg: warning: files list file for package 'libgpg-error0:amd64' missing; assuming package has no files currently installed
dpkg: warning: files list file for package 'libusb-0.1-4:amd64' missing; assuming package has no files currently installed
dpkg: warning: files list file for package 'libpam0g:amd64' missing; assuming package has no files currently installed
dpkg: warning: files list file for package 'libpopt0:amd64' missing; assuming package has no files currently installed
dpkg: warning: files list file for package 'libgssapi-krb5-2:amd64' missing; assuming package has no files currently installed
dpkg: warning: files list file for package 'libgeoip1:amd64' missing; assuming package has no files currently installed
dpkg: warning: files list file for package 'libcurl3-gnutls:amd64' missing; assuming package has no files currently installed
dpkg: warning: files list file for package 'libtasn1-3:amd64' missing; assuming package has no files currently installed
dpkg: warning: files list file for package 'libuuid1:amd64' missing; assuming package has no files currently installed
dpkg: warning: files list file for package 'libgcrypt11:amd64' missing; assuming package has no files currently installed
dpkg: warning: files list file for package 'libgdbm3:amd64' missing; assuming package has no files currently installed
dpkg: warning: files list file for package 'libdbus-1-3:amd64' missing; assuming package has no files currently installed
dpkg: warning: files list file for package 'libsysfs2:amd64' missing; assuming package has no files currently installed
dpkg: warning: files list file for package 'libfreetype6:amd64' missing; assuming package has no files currently installed
(Reading database ... 21908 files and directories currently installed.)
Unpacking cowsay (from .../cowsay_3.03+dfsg1-4_all.deb) ...
Processing triggers for man-db ...
Setting up cowsay (3.03+dfsg1-4) ...
root@debian:~# 

সবকিছু ঠিকঠাক কাজ করে তবে এই সতর্কতা বার্তাগুলি বেশ বিরক্তিকর। কেউ কি জানেন যে আমি কীভাবে এটি ঠিক করতে পারি?

ls -la /var/lib/dpkg/info | grep libssh:

-rw-r--r-- 1 root root    327 Sep 21 15:51 libssh2-1.list
-rw-r--r-- 1 root root    359 Aug 15 06:06 libssh2-1.md5sums
-rwxr-xr-x 1 root root    135 Aug 15 06:06 libssh2-1.postinst
-rwxr-xr-x 1 root root    132 Aug 15 06:06 libssh2-1.postrm
-rw-r--r-- 1 root root     20 Aug 15 06:06 libssh2-1.shlibs
-rw-r--r-- 1 root root   4377 Aug 15 06:06 libssh2-1.symbols

ls -la /var/lib/dpkg/info | grep libssh?
কোয়ান্টা

প্রশ্নের সাথে আউটপুট যুক্ত করা হয়েছে।
চিহ্নিত করুন

আপনি একটি সহজ চেষ্টা করেছেন apt-get update?
বেন লেসানী - সোনাসি

হ্যাঁ, আমি অনেকগুলি প্যাকেজ ইনস্টল করেছি এবং বেশ কয়েকবার আপডেট চালিয়েছি।
চিহ্নিত করুন

উত্তর:


18

তিনি উপস্থিত ফাইলগুলি পুনরায় ইনস্টল করে এটি স্থির করেছিলেন। সুতরাং আপনি এই জাতীয় কিছু চেষ্টা করতে পারেন:

for package in $(apt-get upgrade 2>&1 |\
                 grep "warning: files list file for package '" |\
                 grep -Po "[^'\n ]+'" | grep -Po "[^']+"); do
    apt-get install --reinstall "$package";
done

এক লাইনে বন্ধুত্বপূর্ণ কপি-পেস্ট করুন:

for package in $(apt-get upgrade 2>&1 | grep "warning: files list file for package '" | grep -Po "[^'\n ]+'" | grep -Po "[^']+"); do apt-get install --reinstall "$package"; done

সচেতন হন, এই কমান্ডটি চালানোতে কিছুটা সময় লাগে , যেমন আমরা প্রতিটি প্যাকেজটিতে আছি।

কিছু ক্ষেত্রে apt upgradeত্রুটিগুলি দেখা যায় না তাই আপনি একটি প্যাকেজ পুনরায় ইনস্টল করতে পারেন (উদাহরণস্বরূপ x) যা ত্রুটিটি দেয় এবং এটিকে কার্যকর করে:

for package in $(apt-get install --reinstall x 2>&1 |\
             grep "warning: files list file for package '" |\
             grep -Po "[^'\n ]+'" | grep -Po "[^']+"); do
    apt-get install --reinstall "$package";
done

-bash: syntax error near unexpected token ``do'। বাশে ভাল নয়; আপনি এটা ঠিক করতে পারেন?
চিহ্নিত করুন

চিহ্ন: এখানে ঠিক আছে, আপনি কি forআগের লাইনে শুরুটা মিস করতে পারেন ?
এক্সিক

দুর্ভাগ্যক্রমে কমান্ড চালানোর সময় এটি আমার পক্ষে কিছুই করে না। তবে আমি ধারণাটি পছন্দ করি
জেমি হাবার

1
স্ক্রিপ্টটি পুরোপুরি কার্যকর হয়নি, তবে পুনরায় ইনস্টল করার ধারণাটি ট্র্যাকটি সুডো-ইনস্টল করে নিন - পুনরায় ইনস্টল করুন
অলগ্যামার

প্রথমে রান করুন sudo bashস্ক্রিপ্টটি পেস্ট করুন
সোলিমান

7

উপরের উত্তর সম্পূর্ণরূপে আমার পক্ষে কাজ করে নি। Libc6 নামে কয়েকটি প্যাকেজ এখনও এই ত্রুটিটি দেখিয়েছিল।

আমি একটি ফোরামে একটি সমাধান পেয়েছি। বাগটি হ'ল লিবিসি-র নতুন সংস্করণ ফাইল সংশোধন করার জন্য ফাইলের তালিকার প্রতিধ্বনি দেয় না। /var/lib/dpkg/info/libc6:amd64.listএটি প্রতিধ্বনিত করার পরিবর্তে এটিতে প্রতিধ্বনিত হয়েছিল/var/lib/dpkg/info/libc6.list

এটি চালিয়ে স্থির করা যেতে পারে (আপনার সর্বশেষ সংস্করণ এবং libc6 এর খিলানের জন্য সামঞ্জস্য করুন):

dpkg-deb -c /var/cache/apt/archives/libc6_2.13-38_amd64.deb | awk {'print $6'} | cut -f2- -d. | sed 's|^/$|/.|' | sed 's|/$||' > /var/lib/dpkg/info/libc6:amd64.list

সূত্র: http://forums.debian.net/viewtopic.php?f=5&t=93201

ভবিষ্যতে যে কেউ এটি পড়তে পারে এবং ভাগ্যবান বলে মনে হয় তার জন্য শুভকামনা।


dpkg-deb -c /var/cache/apt/archives/libc6_2.13-38_amd64.debপ্রতীকী লিঙ্কগুলির সাথে এন্ট্রি থাকলে কাজ করে না , উদাহরণস্বরূপ dpkg-deb -c /var/cache/apt/archives/mc_3%3a4.8.13-3_amd64.deb | grep mc.cshফিরে আসে./usr/share/mc/bin/mc.csh -> ../../../lib/mc/mc.csh
এবি

@ AB জানতে পারত না। আমি ডেবিয়ানকে খিটখিটে করেছি এবং যেখানেই পারি সেখানে পুরোপুরি ফ্রিবিএসডি গিয়েছিলাম।
dzhi

2

এই স্ক্রিপ্টটি সংরক্ষণ করার চেষ্টা করুন:

for package in $(sudo apt-get install catdoc 2>&1 | grep "warning: files list file for package '" | grep -Po "[^'\n ]+'" | grep -Po "[^']+");
do
  sudo apt-get -y install --reinstall "$package"
done

তারপরে, এটি দিয়ে চালিত করুন

sudo /bin/bash ./scriptname

এটি কিছুটা অতিরিক্ত কাজ এবং কিছু অন্যান্য আদেশও পছন্দ করেছে যদিও

sudo apt-get -f install
sudo apt-mark hold packagename
sudo dpkg -r --force-depends packagename

কিছু নির্দিষ্ট প্যাকেজ অপসারণ এবং পুনরায় ইনস্টল করার পাশাপাশি

এটি সময় এবং প্রচেষ্টার মোটামুটি সময় নেয়, এখনও apt-getকিছু ত্রুটি দেখায়।


1

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

for package in $(apt-get upgrade 2>&1 | grep "warning: files list file" | sed "s/.*\`//; s/'.*//"); do apt-get install --reinstall "$package"; done

0

উদাহরণস্বরূপ কোনও ফাইলটিতে ত্রুটি বার্তাটি অনুলিপি করুন 111.txt। তারপরে কমান্ড রান করুন

for package in $(cat 111.txt | grep "warning: files list file" | sed "s/'//g" | sed "s/\`//g"|awk '{print $8}'); do apt-get purge "$package" -y; apt-get install "$package" -y;done

0

এখানে অন্যান্য সমস্ত উত্তর ধরে নেওয়া হয় যে আপনি প্যাকেজগুলি পুনরায় ইনস্টল করতে চান। আমার ক্ষেত্রে, আমি এটি করতে চাইনি। আমি তাদের অ্যাপ্লিকেশন locateফাইল তালিকাসমূহের সমস্ত চিহ্ন মুছে ফেলার চেষ্টা করেছি।

প্রথম পদক্ষেপটি প্যাকেজ পরিচালক ব্যবহার করে প্যাকেজগুলি সরানো হয়েছে তা নিশ্চিত করা:

sudo apt remove <package list>

তারপরে অ্যাপের একটি কমান্ড রয়েছে যা আপনি এটি পরিষ্কার করতে চালাতে পারেন। প্যাকেজগুলি আনইনস্টল রেখে যাওয়ার পরে এটি সতর্কতা থেকে মুক্তি পাবে:

sudo apt autoclean

জিজ্ঞাসা উবুন্টু উপর উত্স: প্যাকেজ অনুপস্থিত জন্য ফাইল তালিকা ফাইল


দুর্ভাগ্যক্রমে এটি আমার পক্ষে কার্যকর হয়নি :(
হেডেন থ্রিং

@ হাইডেনথ্রিং কোন প্যাকেজ আপনাকে সমস্যা দিচ্ছে?
স্টিফেন অস্টেরমিলার

একটি গুচ্ছ আছে।
হেডেন থ্রিং

আমি উত্তরটি সম্পাদনা করেছি - আপনাকে অবশ্যই নিশ্চিত করতে হবে যে আপনি সেগুলি প্রথমে সরিয়ে দিয়েছেন
স্টিফেন অস্টারমিলার

0

আমি ডিপিন লিনাক্স অপারেটিং সিস্টেম ব্যবহার করি, আমি উপরের কমান্ডগুলিতে কাজ করেছিলাম। আমি চাইনিজ ভাষা ব্যবহার করি for package in $(sed "s/.*\ \(.*\)\ .*/\1/" error.txt); do apt-get install -y --reinstall "$package"; done আপনি যদি ইংরেজি ব্যবহার করেন

for package in $(sed "s/.*'\(.*\)'.*/\1/" error.txt); do apt-get install -y --reinstall "$package"; done


-1

উপরের কোনও কমান্ড কখনই কাজ করতে পায় নি তবে ত্রুটি বার্তা আউটপুট দেওয়ার পরে অবশেষে এটি আমার জন্য কাজ করে। Txt ফাইলটিতে

for package in $("s/.*'\(.*\)'.*/\1/" error.txt); do apt-get install --reinstall "$package"; done

আশা করি এটি অন্য কাউকে সাহায্য করবে।

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