යාවත්කාලීනයක් කිරීමට උත්සාහ කිරීමේදී “ඒකාබද්ධ ලැයිස්තුවේ ගැටලුවක්” හෝ “තත්ව ගොනුව විග්‍රහ කළ නොහැක” යන දෝෂය නිවැරදි කරන්නේ කෙසේද?


364

පරිගණකය මට මෙම ප්‍රතිදානය කවුළුවකින් ලබා දුන්නේය:

E: Encountered a section with no Package: header
E: Problem with MergeList /var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_natty_main_binary-i386_Packages
E: The package lists or status file could not be parsed or opened.

මෙය නිවැරදි කරන්නේ කෙසේද?


7
මෙම මෙහෙයුම් පද්ධතිය එහි යාවත්කාලීනයන් කෙතරම් අමුතු ලෙස හසුරුවන්නේද යන්න දැන් මට බාධා ඇති කරයි.
matt

Answers:


494

මෙම පර්යන්ත විධාන මඟින් ඔබේ ගැටළුව විසඳිය යුතුය:

ටර්මිනලයක් විවෘත කිරීමෙන් පළමුව ඒකාබද්ධ කිරීමේ ලැයිස්තුව ඉවත් කරන්න ( දියත් කිරීමට Ctrl+ Alt+ ඔබන්න T) සහ මෙම විධානය ක්‍රියාත්මක කරන්න *:

sudo rm -vf /var/lib/apt/lists/*

ඊළඟට, සරල යාවත්කාලීනයක් ක්‍රියාත්මක කිරීමෙන් නව එකක් ජනනය කරන්න:

sudo apt-get update

මෙන්න මෙම ගැටළුව සඳහා වන දෝෂ වාර්තාව (සහ තවත් ), දැන් නිවැරදි කර ඇති බැවින් එය නව අක්‍රමික ගොනු නිර්මාණය නොකළ යුතුය, කෙසේ වෙතත් ඔබ සතුව දැනටමත් අක්‍රීය ගොනු තිබේ නම් මෙම ලිපියේ විස්තර කර ඇති පරිදි ඒවා ඉවත් කළ යුතුය.


-vRm සඳහා භාවිතා කරන විකල්ප වාචික වේ

-v, --verbose විසින් කරනු ලබන දේ පැහැදිලි කරන්න

සහ -fබලය

-f, --force නොපවතින ලිපිගොනු සහ තර්ක නොසලකා හරින්න, කිසි විටෙකත් විමසන්න එපා

විධාන රේඛාවක් හෝ භාවිතා කරන විකල්පයන් පිළිබඳව ඔබට කවදා හෝ සැකයක් ඇත්නම්, සෑම විටම විධානය සඳහා අත්පොත බලන්න . මිනිසා සහ උදාහරණයක් ලෙස man rm සෙවීමෙන් මේවා අන්තර්ජාලයට පිවිසිය හැකිය, නැතහොත් ටර්මිනලයේ හරියටම එකම විධානය ටයිප් කිරීමෙන් ඔබට එකම තොරතුරු ලබා ගත හැකිය. උදාහරණයක් ලෙස man rmපිටුව හැර යාම සඳහා උපදෙස් ටර්මිනලයේ පතුලේ ඇත. මෙය

man පිටු විකල්ප වල පින්තූරය


8
එක් පුද්ගලයෙකුට මෙම පියවර දෙක කිහිප වතාවක් කළ යුතු බව පෙනී ගිය නමුත් එය අවසානයේදී ක්‍රියාත්මක විය.
ජෝන් එස් ග්‍රුබර්

5
එය ක්රියාත්මක කිරීමට අමුතු දෙයක් -vfද අවසානයේ දී rmවිධාන.
කීත් තොම්සන්

8
එය මට ගැටලුව විසඳුවේ නැත. යාවත්කාලීන කිරීම තවමත් එම දෝෂය මට පෙන්වයි.
මැරීන්

1
මෙය පුනරාවර්තන ගැටලුවකි. එය වරකට වරක් සිදුවෙමින් පවතී. මෙම ගැටලුවට හේතුව කිසිවෙකු දන්නවාද?
රුෂිල් පෝල්

1
තේරුම් ගැනීමේ හැකියාව සඳහා මම පිළිතුර සංස්කරණය කර ඇත්තෙමි @ ජැසර්
ඇලන්

84

පර්යන්තයක් විවෘත කර පහත දැක්වෙන විධානයන් එකවර ක්‍රියාත්මක කරන්න:

sudo rm /var/lib/apt/lists/* -vf
sudo apt-get update

මෙයද බලන්න:


1
-vf කරන්නේ කුමක්ද?
ස්පීඩොක්ස්

5
@speedox, අනුව man rm, -v' වාචික ' සහ -f'බලය' යන්නයි. වෙනත් වචන වලින් කිවහොත්, සියලු නියම කරන ලද ලිපිගොනු විමසීමෙන් තොරව ඉවත් කර එය කරන්නේ කුමක්ද යන්න පරිශීලකයාට කියන්න.
fouric

මගේ නඩුවේදී, sudo apt-get updateගැටලුව නිරාකරණය කිරීම පමණි. මම හිතන්නේ ඇලන් විසින් apt හි නවතම අනුවාදයන් මෙය ස්වයංක්‍රීයව නිවැරදි කරන බව සඳහන් කර ඇති බැවින් පළමුව යාවත්කාලීනය උත්සාහ කරන්න.
ThorSummoner

23

ඔබ සංස්කරණය කරන විට ඔබ ඉස්කුරුප්පු /var/lib/dpkg/statusකළා. එය සංස්කරණය කිරීමට පෙර ඔබ විසින් සාදන ලද උපස්ථයෙන් එය ප්‍රතිස්ථාපනය කරන්න. ඇත්ත වශයෙන්ම, ඔබ උපස්ථයක් සෑදුවා නේද?

ඔබ උපස්ථයක් සාදා නැති නිසා, එය නැවත සංස්කරණය කරන්න, ප්‍රවේශමෙන් . වැඩි හානියක් නොකිරීමට උත්සාහ කරන්න.

ඔබට /var/lib/dpkg/status.oldයොමු ලක්ෂ්‍යයක් ලෙස භාවිතා කළ හැකිය . මෙය statusඅවසන් වරට dpkgධාවනය වීමට පෙර සිට ගොනුවේ උපස්ථයකි. දුවන්න

diff /var/lib/dpkg/status.old /var/lib/dpkg/status

වෙනස්කම් බලන්න. ඔබ අතින් සිදු කළ වෙනස්කම් අහෝසි කර අවසන් වරට සිදු කළ වෙනස්කම් තබා ගන්න dpkg.

ඔබ ඇත්තටම ගොනුව අළුත් වැඩියා කිරීමට කළමනාකරණය නොහැකි නම්, පිටපත් /var/lib/dpkg/status.oldකට /var/lib/dpkg/status. ඔබට හොඳින් සැකසූ නමුත් යල්පැනගිය පැකේජ දත්ත ගබඩාවක් ලැබෙනු ඇත.

/var/lib/dpkg/statusසාමාන්‍ය ක්‍රියාකාරිත්වයේ දී ඔබට කිසි විටෙකත් සංස්කරණය කිරීමට අවශ්‍ය නොවේ . යම් යම් දේ පවා බරපතල ලෙස වැරදී /var/lib/dpkg/statusගියහොත් එය පරිපාලකගේ මැදිහත්වීම අවශ්‍ය වන දෙයක් නොවේ. ඔබගේ ගැටළු කුමක් වුවත් crossplatformui, ඒවා විසඳීමට වඩා හොඳ ක්‍රමයක් තිබේ. මට සංස්කරණය කිරීමට අවශ්‍ය එකම අවස්ථාව /var/lib/dpkg/statusඋඩුමහලේ Packagesගොනුවක් කැඩී යාමයි.


ක්‍රොස්ප්ලැට්ෆෝමූයි ඉවත් කිරීමට ඔබ සඳහන් කළ වඩා හොඳ ක්‍රමය දැන ගැනීමට මම කැමතියි. ඔබට එය ඉවත් කිරීමට හැකි සෑම ක්‍රමයක්ම උත්සාහ කර විසඳුම් සෙවීමට උත්සාහ කළ නමුත් මා සඳහන් කළ එකම ක්‍රමය ක්‍රියාත්මක වී ඇත ...
නිර්මික්

1
IrNirmik ගැන කිසිම අදහසක් නැහැ crossplatformui. එය වෙනම ප්‍රශ්නයක් ලෙස අසන්න. dpkgබොහෝ නිල නොවන මූලාශ්‍ර ද ඇතුළුව දශකයකට වැඩි කාලයක් තුළ , statusගොනුව සංස්කරණය කිරීම මට ඉතා කලාතුරකින් අවශ්‍ය වූ බවත්, බිඳුණු තෙවන පාර්ශවීය ගබඩාවක් ඇති විට පමණක් බවත් මට ඔබට පැවසිය හැකිය .
ගිලෙස්ගේ SO- නපුරු වීම නවත්වන්න '

හරි ... නැවත වරක් බොහෝ දේ ස්තූතියි .... ඔබ යෝජනා කරන පරිදි මම එය නව ප්‍රශ්නයක් ලෙස පළ කරමි :) එසේම ඔබ ඉතා දියුණු පරිශීලකයෙකු ලෙස පෙනෙන පරිදි ක්‍රියාකාරී නොවන HOT සෑදීම ගැන ඔබ යමක් දන්නවාදැයි මම ඔබෙන් විමසීමට කැමැත්තෙමි. -කේටීස් වැඩ ?? (මගේ රැහැන් රහිත යතුර ක්‍රියා කරයි)
නිර්මික්

පැරණි දේ අලුත් තැනට දැමීමට උත්සාහ කළත්, මා වෙනුවෙන් එය නිවැරදි කළේ නැත. :-(
ස්ටෙෆාන් ගුරිචොන්

1
re: you ඔබ / var / lib / dpkg / status සංස්කරණය කරන විට ඔබ ඉස්කුරුප්පු කළා me මා වෙනුවෙන් - නැහැ, මම නැහැ, මම මෙම ගොනුව ස්පර්ශ කර නැහැ :) කෙසේ වෙතත් මෙය මගේ ගැටලුව විසඳන එකම විසඳුමයි නඩුව. ඔබට ස්තුතියි.
රුස්ලෝ


16

පැකේජ කළමණාකරු දෝශ නිරාකරණ ක්‍රියාපටිපාටියේ 2-5 පියවර අනුගමනය කිරීමෙන් සාමාන්‍යයෙන් මෙම ගැටළුව විසඳනු ඇත.

සඳහා පියවර 2 , ආබාධිත සියලුම ඔබේ PPAs. ඔබට ඒවා සියල්ලම මෘදුකාංග මූලාශ්‍රවලින් ඉවත් කළ හැකිය. බලන්න යම් PPA අක්රීය කරන්නේ කෙසේද? . ඔබට පසුව ඒවා නැවත සක්‍රිය කළ හැකිය.

සඳහා පියවර 3 , ඔබට හැකි ඕනෑම විවෘත වැඩසටහන් වසා දමන්න. ඔබේ වෙබ් බ්‍රව්සරය විවෘතව තබා ගැනීම ආරක්ෂිත බැවින් ඔබගේ උපදෙස් ඔබ ඉදිරියේ තබා ගත හැකිය. නමුත් ඕනෑම පැකේජ කළමණාකරුවෙකු ක්‍රියාත්මක නොවන බවට වග බලා ගැනීම විශේෂයෙන් වැදගත් වේ . මෙයට මෘදුකාංග මධ්‍යස්ථානය, මෘදුකාංග යාවත්කාලීන කරන්නා (උබුන්ටු හි පැරණි සංස්කරණවල යාවත්කාලීන කළමණාකරු), උපාගම සහ ග්ඩෙබි ඇතුළත් වේ. එය ද විධාන රේඛාව පැකේජ කළමනාකරණ උපයෝගිතා කැමති ඇතුළත් apt-get, dpkgහා aptitude.

අනෙක් පරිශීලකයින් එකම වේලාවක ලොග් වී ඇත්නම්, හැකි නම් ඔවුන් ඉවත් විය යුතු බව සලකන්න .

සඳහා පියවර 4 , පර්යන්ත කවුළුව විවෘත කරන්න. ඔබ භාවිතා කරන ඩෙස්ක්ටොප් පරිසරය කුමක් වුවත් මෙය කළ හැකි එක් ක්‍රමයක් නම් Ctrl+ Alt+ ඔබන්න T.

සඳහා පියවර 5 , ටර්මිනලය කවුළුව තුළ මේ විධානයන් ක්රියාත්මක කරන්න:

ubuntu-support-status
sudo grep -R proxy /etc/apt/*
grep proxy  /etc/environment
echo $http_proxy
echo $ftp_proxy
grep proxy /etc/bash.bashrc
grep proxy ~/.bashrc
cat /etc/apt/apt.conf
sudo fuser -vvv /var/lib/dpkg/lock
sudo fuser -vvv /var/cache/apt/archives/lock
cat /etc/lsb-release
uname -a
sudo rm /var/lib/apt/lists/lock 
sudo rm  /var/cache/apt/archives/lock
sudo rm /var/lib/dpkg/lock
sudo cp -arf /var/lib/dpkg /var/lib/dpkg.backup
sudo mv /var/lib/dpkg/status /var/lib/dpkg/status-bad
sudo cp /var/lib/dpkg/status-old /var/lib/dpkg/status  ||  sudo cp /var/backups/apt.extended_states.0 /var/lib/dpkg/status
sudo mv /var/lib/dpkg/available /var/lib/dpkg/available-bad
sudo cp /var/lib/dpkg/available-old /var/lib/dpkg/available
sudo rm -rf /var/lib/dpkg/updates/*
sudo rm -rf /var/lib/apt/lists
sudo rm /var/cache/apt/*.bin
sudo mkdir /var/lib/apt/lists
sudo mkdir /var/lib/apt/lists/partial
LANG=C;sudo apt-get clean
LANG=C;sudo apt-get autoclean
LANG=C;sudo apt-get --purge autoremove
LANG=C;sudo apt-get --fix-missing update -o APT::Cache-Limit=100000000
sudo dpkg --configure -a
sudo dpkg --clear-avail
LANG=C;sudo apt-get -f install
LANG=C;sudo apt-get --fix-missing install
LANG=C;sudo apt-get update -o APT::Cache-Limit=100000000 && sudo apt-get dist-upgrade
find /etc/apt -name '*.list' -exec bash -c 'echo -e "\n$1\n"; cat -n "$1"' _ '{}' \;

මම එම වචන වාක්‍යය පැකේජ් මැනේජ්මන්ට් ට්‍රබල්ෂූටින් ප්‍රොසෙසර් වෙතින් 2014 මාර්තු 2 වන දින පිටපත් කළෙමි . එම විධානයන් අතීතයේ දී විකාශනය වී ඇති අතර එම ලිපියේ නිර්දේශිත විධානයන් අනාගතයේදී වෙනස් කිරීමට හෝ පුළුල් කිරීමට ඉඩ ඇත . එබැවින් ඔබට එහි 5 වන පියවරේ සිට වැඩ කිරීමට අවශ්‍ය විය හැකිය . (එම ලිපිය, "උබුන්ටු ප්‍රලේඛන විකියට දායක වූවන් " විසින් නිර්මාණය කරන ලද / සංස්කරණය කරන ලද - විශේෂයෙන් මාර්ක් රිජ්කන්බර්ග් - බලපත්‍රලාභී CC-BY-SA 3.0 , නිසි ආරෝපණයකින් මෙහි ඇතුළත් කිරීමට ඉඩ සලසයි.)

එම විධානයන්ගෙන් සමහරක් ගැටළුව විසඳීමට උත්සාහ කරයි (තවද රෝග විනිශ්චය තොරතුරු පෙන්වනු ඇත); තවත් සමහරු ඔබේ ප්‍රශ්නයට ඇතුළත් කළ හැකි හෝ ඔබට උදව් කරන කෙනෙකුට ලබා දිය හැකි ගැටලුව පිළිබඳ වටිනා තොරතුරු ප්‍රදර්ශනය කරති. (නැත්නම්, ඔබේ දක්ෂතා මත පදනම්ව, සක්රිය කළ හැක ඔබ එය හඳුනාගෙන විසඳීමට.)

බොහෝ විට මෙය නිවැරදි කරන නමුත් එය නොමැති විට එය නිවැරදි කිරීමට ප්‍රමාණවත් තොරතුරු ලබා දෙයි.

ඔබට එම විධානයන් අතින් ටයිප් කිරීමට අවශ්‍ය නැත; ඔබට ඒවා පිටපත් කර ඇලවිය හැකිය. එක් එක් ඒවා වෙන වෙනම අලවා ධාවනය කිරීමට මම නිර්දේශ කරමි. මෙමඟින් කුමන විධානයන්ගෙන් කුමන ප්‍රතිදානයද යන්න පැහැදිලි වේ.


මම මුළු බ්ලොක් එක පිටපත් කර එකින් එක ධාවනය කරනවා වෙනුවට අලවන්නෙමි. මෙහි ඇති විධානයන් කිහිපයක්
නිෂ් less ල

11

ඔබේ ගබඩාවල ඕනෑවට වඩා ප්‍රභවයන් ඇති විට මෙම ගැටළුව ඇති වන බව මම දැක ඇත්තෙමි.

ඉහත පළ කළ විසඳුම උත්සාහ කරන්න සහ / හෝ සමහර විට මෙය දියත් කිරීමේ පෑඩ් හි නිර්දේශ කරනු ලැබේ:

sudo mv /var/lib/apt/lists /var/lib/apt/lists-old
sudo mkdir -p /var/lib/apt/lists/partial
sudo apt-get update

ඔබ ඉදිරියට යන ආකාරය අපට දන්වන්න.


ඔබට ස්තුතියි! මෙය සාදන්නා නොමැතිව ඩීඑස්එල් සමඟ ක්‍රියා කළේ නැත.
ඩග්

4

මම සමාන දෝෂයකට මුහුණ දෙමින් සිටියෙමි:

Reading package lists... Error!
E: Encountered a section with no Package: header
E: Problem with MergeList /var/lib/dpkg/status
E: The package lists or status file could not be parsed or opened.

පිටපත් කිරීමට මම සමාන යෝජනා අනුගමනය කළෙමි status-old.

$ head /var/lib/dpkg/status
$ head /var/lib/dpkg/status-old

මගේ සියලු තත්ව ලිපිගොනු කිසියම් හේතුවක් නිසා හිස් විය. වාසනාවකට මෙන්, මෙම ලිපිගොනු වල උපස්ථ ඇති බව මම සොයා ගතිමි:

$ ls -l /var/backups/dpkg.status.*
-rw-r--r-- 1 root root 444620 Nov 15 06:33 /var/backups/dpkg.status.0
-rw-r--r-- 1 root root 444620 Nov 15 06:33 /var/backups/dpkg.status.1.gz
-rw-r--r-- 1 root root 128168 Sep 20  2013 /var/backups/dpkg.status.2.gz
-rw-r--r-- 1 root root 112545 Sep 16  2013 /var/backups/dpkg.status.3.gz
-rw-r--r-- 1 root root 107767 Sep 14  2013 /var/backups/dpkg.status.4.gz
-rw-r--r-- 1 root root 107766 Sep 11  2013 /var/backups/dpkg.status.5.gz
-rw-r--r-- 1 root root  94583 Sep 11  2013 /var/backups/dpkg.status.6.gz

මම නවතම උපස්ථය පරීක්ෂා කළා ...

$ head /var/backups/dpkg.status.0

... නමුත් එය තවමත් හිස් විය. ඒ නිසා මම පැරණි එකක් ඉවත් කළා ...

$ gunzip /var/backups/dpkg.status.1.gz
$ head /var/backups/dpkg.status.1

මෙවර අන්තර්ගතය විය. ඉතින් මම ඒක පිටපත් කළා ...

$ cp /var/backups/dpkg.status.1 /var/lib/dpkg/status

ඉන්පසු apt-get updateකිසිදු ගැටළුවක් නොමැතිව දිව ගියේය.

ණය මෙම තනතුරට යයි.


4

මට එකම ගැටලුවක් ඇති අතර වෙනත් පිළිතුරු වල සඳහන් සියලු දෝශ නිරාකරණ උත්සාහ කර ඇත. පුදුමයට කරුණක් නම් එකම විසඳුම වෙනස් පියවරකි:

  • මෘදුකාංග සහ යාවත්කාලීන කිරීම් වෙත යන්න -> උබුන්ටු මෘදුකාංගය -> වෙතින් බාගන්න -> වෙනත්-> හොඳම සේවාදායකය තෝරන්න

  • පරීක්ෂණ සඳහා රැඳී සිටින්න. පරීක්ෂණ අවසානයේදී හොඳම සේවාදායකය තෝරා ගනු ලැබේ, අවශ්‍යයෙන්ම ළඟම ඇති එක හෝ ප්‍රධාන සේවාදායකය හෝ ඔබේ ස්ථානය සඳහා සේවාදායකය නොවේ.

  • දැන් Repo දත්ත නැවත පූරණය කරන්න, එය නිසියාකාරව අවසන් වේ.

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.