Удален /usr/bin / python* по ошибке, как его восстановить?

скольжением клавиш я выдал команду:

sudo rm /usr/bin/python*

и с этого начались проблемы. Python все еще запускается, но когда я теперь хочу сделать что-нибудь с dpkg, я получаю эту ошибку (все сообщение об ошибке не включено, поскольку оно длинное):

AttributeError: 'module' object has no attribute 'pydebug'
dpkg: error while cleaning up:
 subprocess installed post-installation script returned error exit status 1
Errors were encountered while processing:
 /var/cache/apt/archives/python-papyon_0.5.5-1ubuntu3.1_all.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

поэтому в основном papyon/компиляторов или dpkg, кажется, быть причиной проблемы. Я пробовал такие вещи, как

sudo apt-get -f install
sudo apt-get --fix-missing install

после той же проблемы, упомянутой в другом форуме:на Ubuntu: я удалил /usr/Бен/вместо python2.7 - пожалуйста, помогите

но безрезультатно. Кажется, что независимо от того, что я делаю с dpkg, я получаю ту же ошибку. Я наивно пытался это:

sudo cp /usr/lib/python2.7 /usr/bin/python2.7
sudo ln -s /usr/bin/python2.7 /usr/bin/python

но это не сработало.

любая помощь здесь будет appriciated.

10
задан Community
03.04.2023 11:16 Количество просмотров материала 3324
Распечатать страницу

1 ответ

это один веселый скольжение пальцев; я всегда хотел бы использовать sudo echo /path/to/files/*glob* посмотреть, какие файлы конкретно я собираюсь удалить, прежде чем изменить echo to rm. Теперь вы тоже усвоили урок! Забава.

проповедь в стороне, это не должно быть слишком трудно исправить, но это займет несколько "проходов". deb пакеты ar(1) пакеты, и может быть легко манипулировать с ar(1):

$ ar xv /var/cache/apt/archives/python-papyon_0.5.5-1ubuntu1.3_all.deb
x - debian-binary
x - control.tar.gz
x - data.tar.gz

попробуйте это:

mkdir /tmp/fixing_python
cd /tmp/fixing_python
ar xv /var/cache/apt/archives/<package_for_overwriting>
cd /
tar zxvf /tmp/fixing_python/data.tar.gz

итерации что для каждого пакета нужно "исправить". debsums(1)s -c параметр командной строки может быть полезным, если у вас есть debsums(1) установлен.

отметим, что tar команда есть немного "разрушительная" -- она перезапишет все, что ей нужно. Если вы хотите посмотреть, что все распакует, пропустите cd / шаг вперед, и tar(1) распакует в каталог, давая вам возможность увидеть, что сделано.

после того, как вы все распаковали, что тебе нужно, я постараюсь достать dpkg(1) "счастлив" за счет собственных механизмов. (The control.tar.gz содержит сценарии, которые выполняются при обновлении, установке, удалении и т. д. Я просто заставил вас пропустить все из них, думая, что как только вы переустановите Python, вы можете использовать dkpg(1) себя, чтобы исправить проблемы.)

у нас, конечно, установлены разные пакеты, но это может быть полезно для вас, чтобы узнать, какие пакеты нужны исправление:

$ dpkg -S /usr/bin/python*
python-minimal: /usr/bin/python
python2.6-minimal: /usr/bin/python2.6
python2.7-minimal: /usr/bin/python2.7
python3-minimal: /usr/bin/python3
python3.2-minimal: /usr/bin/python3.2
python3.2-minimal: /usr/bin/python3.2mu
$ 

и обратите внимание, что вы можете извлекать пакеты непосредственно из архивов без использования apt-get(8). Они просто сайты HTTP и http://packages.debian.org или http://packages.ubuntu.com сделать это легко, чтобы захватить пакеты, которые вам нужны с wget(1) или curl(1).

обновление

Ах, да, обратите внимание, что /usr/lib/python* где библиотеки Python и модули сохраняются. /usr/bin/python* где Интерпретатор Python сохраняется. Ваша попытка исправить ситуацию с cp /usr/lib/python2.7 /usr/bin/python2.7 не помогло. Также /usr/lib/python2.7 это каталог, а /usr/bin/python должен быть (и был) один исполняемый файл. Не стесняйтесь rm -r /usr/bin/python2.7 /usr/bin/python.

3
отвечен sarnold 2023-04-04 19:04

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх