Здравствуйте, я использую gentoo не давно и сделал такую ошибку: я удалил пакет zlib из системы. Моя система портежей повреждена:
# emerge --sync
Traceback (most recent call last):
File "/usr/bin/emerge", line 36, in <module>
from _emerge.main import emerge_main
File "/usr/lib64/portage/pym/_emerge/main.py", line 41, in <module>
from _emerge.actions import action_config, action_sync, action_metadata, \
File "/usr/lib64/portage/pym/_emerge/actions.py", line 44, in <module>
from _emerge.depgraph import backtrack_depgraph, depgraph, resume_depgraph
File "/usr/lib64/portage/pym/_emerge/depgraph.py", line 40, in <module>
from _emerge.FakeVartree import FakeVartree
File "/usr/lib64/portage/pym/_emerge/FakeVartree.py", line 11, in <module>
from portage.dbapi.vartree import vartree
File "/usr/lib64/portage/pym/portage/dbapi/vartree.py", line 56, in <module>
import re, shutil, stat, errno, copy, subprocess
File "/usr/lib64/python2.6/subprocess.py", line 430, in <module>
import pickle
File "/usr/lib64/python2.6/pickle.py", line 1258, in <module>
import binascii as _binascii
ImportError: libz.so.1: cannot open shared object file: No such file or directory
Как я могу переустановить пакет zlib и восстановить систему?
обновлено
Задача решена. Я скопировал объектный файл /lib/libz.so.1
с другой машины, а затем я могу бежать emerge
и установить zlib
упаковка обычным способом.
Благодаря PowerSp00n
Теоретически вы можете скачать файл stage3, используемый для установки, и восстановить недостающие файлы. когда emerge
снова работает переустановите zlib
с участием emerge -av1 zlib
.
Готовые бинарные пакеты доступны на http://tinderbox.dev.gentoo.org/ - проверьте это в следующий раз, когда столкнетесь с такой проблемой.
Также, когда вы удаляете пакеты, я предлагаю использовать emerge -pv --depclean pkgname
потому что он не позволит вам развязать пакет, если от него все зависит.