Восстановление с плохо поврежденной системы пакета (dpkg+python +???)

Обычно спрашивают некоторые вещи преамбулы...

OS: Ubuntu 14.04 (amd64)
Python2: /usr/bin/python -V -> Python 2.7.12
Python2default: which python -> /usr/local/bin/python
/usr/local/bin/python -V -> Python 2.7.12
dpkg: dpkg --version -> Debian `dpkg' package management program version 1.17.5 (amd64).
apt: sudo apt --version -> apt 1.0.1ubuntu2 for amd64 compiled on Apr 12 2018 10:14:36
c: gcc --version -> gcc (Ubuntu 4.8.5-4ubuntu8~14.04.2) 4.8.5
llvm: clang --version -> clang version 3.9.1-4ubuntu3~14.04.3 (tags/RELEASE_391/rc2)

Пока все хорошо. Теория возможных причин:

  • обновленная система сборки C (заметил некоторые обновления c в обновлении недавнего ubunty, которое, как ожидают, будет видеть c v5 здесь, но это возможно находится на рассмотрении для установки),
  • установленное обновление llvm нового (для других целей, но мог влиять, даже при том, что это llvm является в ver 6 последним llvm для 14, все еще 3.9.x),
  • попробованный для обновления/usr/local Python к версии 2.7.15 путем создания его (я заметил, что это имеет тенденцию перекомпилировать модули Python, смотрит на меня, что 2.7.15 обновлений py несколько более амбициозны, и можете, повредил вещи, ранее установленные),

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

На пути я узнал, что Ubuntu так уверена в Python, что это колеблется. И я мечтаю о возможных выходах из этого:

  • имейте специальную установку некоторого минимального Python только для системы (пакет) использование. Проблема здесь состоит в том, который из системного Python стороны пользователя уязвим, как только пользователь хочет переместиться в некоторую старшую версию Python, он может смешать много в системном функционировании. Даже наличие его альтернативный (/usr/local/bin) излагает высокий риск, что пользователь смешает со стандартной установкой по ошибке.
  • имейте упаковочную систему на основе скомпилированных двоичных файлов и возможно некоторого внешнего сценария и не использования сценариев Python, чтобы сделать работы. Как в моем случае поврежденный Python останавливает меня установки (или фиксация, по-видимому, и вероятно поврежденный) dpkg (и вероятно некоторая система освобождает),
  • имейте альтернативную упаковочную систему, которая работает с помощью другого инструмента, таким образом, возможно переустановить корректный пакет при помощи альтернативного упаковочного установщика
  • имейте систему аудитов (что-то, что сказало бы пользователю, что может быть повреждено - например: пакет pacx.x ожидает, что xxx файлы будут в месте yyy. Если что-то не соответствует (потому что пользователь установил что-то еще для использования чего-то x-else и смешал библиотеки).
  • имейте 0 систем минимума восстановления установки - что-то, что пользователь может установить через инструменты Unix для достигания точки для выполнения некоторой упаковочной системы гладко, пока более разработанная или главная система не существует назад.

Хорошо. достаточно теории!

Шаг 1: попытка зафиксировать, если что-нибудь повреждается в зависимостях:

$ sudo apt-get -f install
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Correcting dependencies... Done
The following extra packages will be installed:
  python-distlib
The following NEW packages will be installed:
  python-distlib
0 upgraded, 1 newly installed, 0 to remove and 13 not upgraded.
9 not fully installed or removed.
Need to get 0 B/2,120 kB of archives.
After this operation, 559 kB of additional disk space will be used.
Do you want to continue? [Y/n] 
dpkg: error processing package dpkg (--configure):
 package is in a very bad inconsistent state; you should
 reinstall it before attempting configuration
Errors were encountered while processing:
 dpkg
E: Sub-process /usr/bin/dpkg returned an error code (1)

Step2: Предложенное восстановление dpkg.

$ sudo apt-get install dpkg
Reading package lists... Done
Building dependency tree       
Reading state information... Done
dpkg is already the newest version.
You might want to run 'apt-get -f install' to correct these:
The following packages have unmet dependencies:
 python-pip : Depends: python-distlib but it is not going to be installed
              Recommends: python-dev-all (>= 2.6) but it is not installable
E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).

Шаг 3: Повторите шаг 1 - и мы получаем тот же результат

Шаг 4: Попытайтесь переустановить силой dpkg

$ sudo apt-get install --reinstall dpkg
Reading package lists... Done
Building dependency tree       
Reading state information... Done
You might want to run 'apt-get -f install' to correct these:
The following packages have unmet dependencies:
 python-pip : Depends: python-distlib but it is not going to be installed
              Recommends: python-dev-all (>= 2.6) but it is not installable
E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).

Step5: хорошо хорошо этот противный python-distlib должен быть установлен сначала...

$ sudo apt-get install --reinstall python-distlib
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following NEW packages will be installed:
  python-distlib
0 upgraded, 1 newly installed, 0 to remove and 13 not upgraded.
9 not fully installed or removed.
Need to get 0 B/2,120 kB of archives.
After this operation, 559 kB of additional disk space will be used.
dpkg: error processing package dpkg (--configure):
 package is in a very bad inconsistent state; you should
 reinstall it before attempting configuration
Errors were encountered while processing:
 dpkg
E: Sub-process /usr/bin/dpkg returned an error code (1)

Шаг 6: теперь я нахожусь в очень плохой форме. Предложенный (ре) установка dpkg системы, которую я попробовал на шагах 2,3 и 4 (с расстраивающим результатом)

Что я могу сделать теперь?

Я пытался взломать/var/lib/dpkg/status, я попытался воссоздать список хранилищ/etc/apt, я попытался сделать альтернативную установку Python 12, 14 и 15 путем компиляции из официального источника Python (ни один не помог так, я оставил его в 12).

Я знаю для того, что существуют более поврежденные пакеты, которые должны быть зафиксированы (не перечисленный в примерах). За один момент система была так повреждена, что я потерял графическую среду и должен был работать от терминалов (к счастью для нас, что lin-unix настолько не зависит от графики как окна или osx). Я должен был переустановить рабочий стол единицы, таким образом, я, по крайней мере, вернулся к графическому режиму (поврежденный Python так влиял, что даже зависимость графического ui в человечности легко пробита прочь им или по крайней мере единица одна),

Я знаю, что последнее средство должно было бы установить ту же или более новую версию Ubuntu с CD (или 14.04 или человечность 16). Я остался бы в 14, потому что я хочу закончить некоторые тесты, и это хорошо работает для меня на этих конкретных аппаратных средствах.

Наконец - вопрос:

Что еще я мог возможно попытаться восстановить систему пакета к довольно функциональному состоянию с точки зрения наличия некоторой альтернативной системы установки пакета или путем выборки/загрузки некоторых пакетов и в конечном счете вручную скомпилировать и/или установить их.

Я должен зафиксировать:

  • значение по умолчанию/установка системы Python (в любом устойчивом состоянии, которое было, даже если это означает ухудшать версию - afaik, я помню, что исходный Python во время установки был 2.7.6 (теперь полностью исчез),
  • dpkg

Для потомства это - июль 2018.

Все подсказки приветствуются, я могу едва сделать вещи хуже, чем они в настоящее время - так быть полужирными с идеями ;)


Редактирование 1:

Я обнаружил, что ppa jonathoff, вероятно, связанный Обновил Python 2.7 к последней версии 2.x

могло случиться так, что я добираюсь 2.7.12 от ppa repo автоматически. Я не вспоминаю, когда я добавил этот ppa к своему списку repos, но я не забываю использовать этот рецепт.

В настоящее время я пытаюсь установить относительно того, почему я не могу овладеть python27 файлы пакета.


Редактирование 2:

Хорошо. Это в настоящее время - моя рабочая теория:

Я добавил https://launchpad.net / ~ jonathonf ppa к моему списку. Со временем это перемещало системный Python от 2,6 до 2,7. До py 2.7.12 вещей были в порядке. Однажды python27 перемещенный, чтобы быть 2.7.14 вещами был поврежден.

Я заметил бы, что версия Python переместилась, но я думал, что это было нормальным обновлением человечности.

Теперь при исследовании проекта Jon, Вы найдете, что текущий python2.7 на самом деле 2.7.14 (и очень вероятно согласно его странице, приспособленной к человечности 16. см. https://launchpad.net / ~ jonathonf / + archive/ubuntu/python-2.7), эта версия, если python27 является тем, который не работает на меня.

Я думаю, что пытался решить проблему путем установки 2.7.12 сам путем создания его из источников, но та версия, столь же хорошая, как это самостоятельно, это сделано для пользователя/программирования, и это не то же как версия человечности системного Python (существуют тонкие различия здесь, что я читал в другом месте, но я надеялся, что это будет работать. Это не сделало. Это был плохой выбор, хотя отчаянные времена требуют отчаянных мер).

В исходном системном Python архивов человечности для Ubuntu14, как вероятно, все еще ожидают, будет 2.7.6 следовательно, даже если бы я попытаюсь найти, что python27 в возможностях архивов выпуска человечности, я не нашел бы его. (Кто-то доказывает меня неправильно на этом и говорит мне, где я могу получить python27 в различных изменениях),

Теперь вопрос состоит в том, где я могу найти предыдущий архив этого ppa и попытаться восстановить Python к рабочей версии.

Последняя версия, которая хорошо работала с Кв. для меня, была 2.7.12.

Проблема состоит теперь в том, где получить тот конкретный архив? Если это не потеряно вовремя.

1
задан 7 July 2018 в 05:02

2 ответа

Вы можете попытаться восстановить dpkg вручную (загрузить и распаковать его в файловую систему):

wget http://mirrors.kernel.org/ubuntu/pool/main/d/dpkg/dpkg_1.17.5ubuntu5.8_amd64.deb

ar x dpkg_1.17.5ubuntu5.8_amd64.deb
sudo tar -xvf data.tar.gz -C /

Затем переустановить его:

sudo apt-get install dpkg --reinstall

Удалить локальный Python с помощью

sudo rm /usr/local/bin/python*

Удалить PPA, связанный с python:

sudo ppa-purge ppa:jonathonf/python-2.7

установить нормальный python из репозитория

sudo apt-get install --reinstall libpython-stdlib python-minimal python2.7 \
python-apt python-distlib libpython2.7-minimal libpython2.7-stdlib

и исправить всю систему:

sudo apt-get install -f
sudo dpkg --configure -a

На последнем этапе проверьте согласованность вашей системы с apt-get и debsums:

sudo apt-get check
# debsums
sudo apt-get install debsums
sudo debsums_init
sudo debsums --changed --silent
# afterwards reinstall listed packages with
# sudo apt-get install --reinstall package-name
2
ответ дан 7 July 2018 в 05:02

Я предоставляю ответ здесь, не потому что ответ N0rberts был плох. Наоборот, ответ N0rberts был 2. 1. inspirative и 2. очень полезный для меня, следовательно я приму, как ответ на вопрос, потому что по существу это - это. Спасибо N0rbert для поддержки и терпения.

Мой ответ здесь должен пролить свет на некоторые побочные эффекты и пограничные случаи.

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

Обзор того, что произошло

То, что я узнал на поездке о фиксации...

  1. За один момент я понял, что не могу установить или обновить что-либо на своем Ubuntu14 (это могло легко быть более новое),

  2. Я сделал теорию того, что может быть неправильным, потому что я пытался создать некоторое новое программное обеспечение, и вещи повреждались так, я пытался установить различные меры на той сборке. Вещи просто начали повреждаться, но не повреждаться критически.

lesson1: то, что это повернуло для влияния к причине проблемы, прибывало из другого угла, не из теории, которую я имел. Я думал, что мои недавние установки LLVM влияли на Python, в то время как преступник проблемы был репозиторием PPA, который я установил для решения чего-то еще. Проблема состоит в том, что рассматриваемый PPA я установил только что (1 год +) и забыл, что это там. Тихо Ubuntu обновляла новые функции и возможности (даже когда это действительно не рекомендуется). То плохое мое решение будет более разработано позже.
- Мораль урока: не теоретизируйте, чем это может быть - пытаются исследовать и обдумать факты тщательно.

  1. Испытанные различные рецепты, пока я не приехал в состояние никакого восстановления. В сущности я повредил 2 существенных вещи в своем Linux: 1. dpkg и 2. система python. За один момент повредилась целая система до такой степени, что я потерял графическую среду, сначала некоторые приложения начинают повреждаться (это происходило за период нескольких месяцев), и наконец в самой низкой точке я заканчиваю, что я мог запустить свою Ubuntu только от консольных терминалов (Alt-F1 к Alt-F4). При нахождении на Linux в течение долгого времени я первоначально останавливался на командной строке. Конечно, вещами является путь, легче, когда у Вас есть графика, главным образом потому что можно выполнить браузер для исследования потенциальных решений. Я - программист, и мои металлические деньги, как известно, немного догматичны (догматичный =, верят в автоматизацию собак :)), это означает, что я буду цепляться за некоторую мысль, игнорирующую потенциальные факты.

lesson2: Я имею веру, что существует 2 способа починить вещь, когда ОС рассматриваема. 1. Переустановите все это 2. попытайтесь зафиксировать. Я попробовал обоих в прошлом. В последнее время я понимаю, что опция 2 имеет больше значения. Путем попытки починить вещи я узнал намного больше об ОС. Я был к в известной мере не осведомлен. Теперь, Если бы я просто переустановил ОС, то я в конечном счете пришел бы к более проблематичной ситуации, которая в конечном счете спровоцировала бы чистую установку с нуля, что означает всю точную настройку, и все виды других данных будут потеряны.
- Мораль урока: Изучите, не возьмите простой способ вперед, будьте полужирными. В конечном счете это полезно.

  1. Я передал проблему сюда и говорил с настоящими людьми. Спасибо JonathonF для ценного понимания цели PPA и предоставляющей информации об архиве.

Lesson3: Во время расследования я узнал, что Jonathon действительно не рекомендует его PPA использоваться и если Вы делаете, сделайте это на своем собственном риске. На самом деле мой Linux не в жестком реальном времени - это - мой компьютер для хобби (но это ценно мне, поскольку я использую его для всего вида вещей: от онлайна - банкинга через забаву к оценке программного обеспечения или языков программирования, которые я использовал бы профессионально.)
- Мораль урока: если Вы не можете полагать, что все сами - говорит с людьми. Существуют ценные подсказки в том, что они делают и что они скажут Вам. Но попытайтесь читать тщательно, особенно иметь целью PPA.

Путь к восстановлению

  1. первая вещь, которая имела значение, состояла в том, чтобы восстановить dpkg.

Начало NOrberts отвечает на адреса это.Скачать .deb, файлы извлечения и делают вручную, что все эти инструменты пакета сделают для Вас автоматически.

sudo apt-get install dpkg --reinstall

порочный круг
не работал на меня потому что apt смотрит на меня, чтобы быть уверенным в сценариях, в которых выполняют python и python модули не хотели быть установленными через apt (порочный круг). Таким образом, я не мог зафиксировать этот шаг, пока я не зафиксировал python сначала. Требование здесь это python используется чувство. На самом деле в конце я никогда не пытался установить/устранить apt программа для создания системной работы - существует что-то к этому. Я не могу доказать это, но это остается сильной автоматизированной собакой мне.

Вторая часть N0rbert предлагает удалить альтернативу python.

Я установил альтернативу python потому что мне была нужна более новая версия, чтобы попытаться сделать что-то (не помните точно, что было в то время).

В сущности у меня была путаница различных установленных Python и не очень ясный, который Python использует что. Это переходит частично к опыту Ubuntu и частично к опыту Python. Ubuntu выполняет свою собственную версию по причинам, бывшим известным им, в некоторых случаях это не помогает, поскольку документация может ввести в заблуждение Вас, пока Вы не изучаете различий. Проблема была, у меня не было идеи, как правильно установить системный Python. Это прибывает предварительно установленное во время установки ОС, и рекомендуется остаться неизменным (несмотря на тех, что эта политика может представлять некоторую другую угрозу). С другой стороны, процессы установки обычно имеют тенденцию не говорить с пользователем. Даже если бы я сделал что-то не так различными способами настроить, или установить я не знал бы. Нижняя строка, я не нашел документацию, как исправить системный Python где угодно. На самом деле существует много рецептов, которые сказали бы Вам делать:

sudo apt-get install python27

возможно это решило бы проблему при нормальных обстоятельствах, что означает, что Вы имеете python значительно рабочий хорошо и apt работает на Вас.

первая часть проблемы с Python была то, что мой Python по умолчанию был альтернативным Python. Независимо от того, что я сделал на самом деле не поражал системный Python.

Следовательно другая подсказка от N0rbert была важна - удаляют любую ссылку на альтернативный Python. Начиная с этого Python я установил путем компиляции источника Python и установки от этого, этот Python не был частью нормальной системы пакета. Удаление его непосредственно от диска было тем, какой предложенный N0rbert и это - то, что я сделал среди первых вещей (я мог легко восстановить его в случае необходимости).

Некоторые другие подсказки предложили деинсталлировать Python. Когда я попробовал это, это вошло в длинный список объектов, которые деинсталлируют. Я не был готов к этому - было много приложений и других вещей, и я думал - кто переустановит все это и что это сделало бы. Об этом немного позже.

Начиная с деинсталляции системного Python было вне рассмотрения, единственная возможность состояла в том, чтобы попытаться вызвать для установки его на вершине.

Я не знаю, сколько разных вещей я попробовал, чтобы сделать это. Ни один из них замененный системный Python. За один момент я стал отчаянным, как Python в лучшем случае был 2.7.12 (вместо системного Python). Исходное распределение человечности 14 трудно прикреплено к 2.7.6. Который казался мне слишком старым. Я ожидал бы, что человечность посредством нормального обновления прибудет приблизительно в 2.7.9 или 2.7.10, но дело обстоит не так. Если Вы смотрите на архивы человечности только Python, который показывают и имеет пакеты, назван python27, и на самом деле это - Python 2.7.6.

Это имеет, приводят меня к вопросу - каким образом, когда я пытаюсь установить pyton27, я получаю Python 2.7.14, которому не удается установить, но также и когда я добираюсь, версия/usr/bin/python (указывает на python2, который указывает на python27, который является двоичным), я регулярно получаю Python 2.7.12.

После нескольких дней, сон, думающий и т.д. Я пришел к заключению, что я не знаю, где 2.7.12 и попытался 2.7.14, прибывают из. Тем временем я экспериментировал с установкой 2.7.15 как альтернатива - который был хорошей работой, и я думал - хорошо, возможно, я мог сделать вещь с.15 лучше, чем предыдущие версии. И это было ошибкой.

Интересно достаточно 2.7.12 в /usr/bin было довольно устойчивое пребывание в той же версии независимо от того, что я сделал.

Это имеет, приводят меня к подозрению, и расследование показало, что у меня был PPA Jonathon, и там в его PPA новый python27 на самом деле 2.7.14. С тех пор 2.7.12 все еще работал на меня с минимальными побочными эффектами, которые я послал электронное письмо Jonathon, чтобы сказать мне, если у него есть python27 в некотором более раннем воплощении, например, 2.7.10 (где-нибудь упомянутый в установке) или возможно 2.7.12 или даже некоторая более ранняя версия, я могу попытаться установить. Jonathon был довольно быстр для ответа и указал на меня на свои архивы (также доступный онлайн), но в его архивах я нашел, что самая ранняя сборка python27 на самом деле 2.7.12, и это - то, почему это была эта версия, которая цеплялась. На самом деле Jonathon упоминает, что создает в настоящее время для Ubuntu 16, и скоро он прекратит делать, это и от падения этого года начнет создавать для Ubuntu 18. Python27, которая была в его архиве, даже не был создан для моей версии Ubuntu. WOW. Я полагал, что принял плохое решение некоторое время движение.

Я удалил весь PPAs из способного списка. Я даже удалил список человечности по умолчанию (как плохо был то, что решение придет позже),

За один момент я думал, что был сделан. Не было никакого пути назад машина, которая принесет мне к предыдущему состоянию. И некоторое время я обдумал много вещей включая установку ubuntu16 для супер наложения с более новым набором.

APT был все еще поврежден, незаконченные части Python не хотели устанавливать.

Затем я решил. Я попытаюсь установить во взломе или никаком взломе путем исходный Python 2.7.6, как дали от человечности. Это было это или ничто.

Но даже это, оказалось, не было легкой задачей. Так как APT был поврежден, мне был нужен способ установить, и я начал узнавать о dpkg. По-видимому, APT является хорошим фронтэндом для DPKG, и на самом деле это dpkg это делает тяжелую работу.

Было бы легче, если бы у меня была Ubuntu CD, где я установил эту ОС от, но этот CD, после нескольких перемещений я сделал за несколько прошлых лет, бог знает где. Штопка.

К счастью Интернет является обширной библиотекой, таким образом, справка прибыла в форме архивного сайта. Это был этот, который стал полезным: https://pkgs.org/

Я предполагаю любой пакет, в котором Вы нуждались бы, там от нескольких дистрибутивов включая человечность.

Какой .deb загрузить?

Это изобразило из себя основной вопрос. APT не работал также, потому что зависимости могут быть повреждены. Это - что-то, что любой Linux dist мог улучшить - своего рода система аудитов, которая скажет Вам, какой файл, из которого пакет не то, что это находится в исходном пакете.

Я не знаю то, что архивирует, я должен установить, и я не знаю, как установить его, но даже в худшем случае, так как эти .deb являются архивами, я в конечном счете извлек бы их и файлы замены с оригиналами.

На самом деле оказалось, что это не действительно необходимо. DPKG может сделать это задание (если это значительно восстанавливается к рабочему состоянию, и задача № 1 N0rbert гарантировала это. Это не было идеально, но DPKG, кажется, программа в двоичном представлении, таким образом, это работало бы хорошо, если данные в порядке.

Я обнаружил это dpkg имеет опцию -i устанавливать.

Таким образом, я загрузил .deb и:

dpkg -i dpkg_1.17.5ubuntu5.8_amd64.deb

на самом деле подходил. apt остановленная жалоба это dpkg не настроен хорошо. Это уже было хорошим ветром.

Стоит упомянуть, что я точно сразу не прибыл в эту точку, это был скорее метод проб и ошибок и понимание, которые склонный - добираются, не собирается делать работу очистки для меня для установки. Я не уверен, где Ubuntu сохраняет meta информацию о пакетах (я подозреваю, что это находится в/var/lib/dpkg/status файле), потому что взламывание состояний пакетов не всегда представляло соответствующий эффект. Я имею все еще веру, что своего рода инструмент аудита должен быть разработан как помощь сравнить то, что находится на самом деле в файлах по сравнению с тем, что записи установки говорят, что это находится в файлах.

Система APT является модульной, одна вещь не может работать, но другой может также быть. Я узнал, что могу сделать:

apt-get download python

это получит Вас некоторая версия Python, но это не может быть тем, что Вы хотите. В случае Ubuntu 14 выше каждый выберет Вас Python 2.7.5. (если у Вас есть просто определенные источники системы - который является значением по умолчанию),

Также эта функция имеет смысл как apt материал загрузок перед установкой. Это просто, я никогда не видел это, и я всегда вижу что-то как wget site bla bla. Я верю apt-get download более безопасная опция. Используйте его.

apt-get download python27

получит Вас некоторые архивы .deb к Вашему локальному диску. Мне не были нужны все они.

Расследование показало, что мне нужен файл /usr/bin/python27 но не просто любой /usr/bin/python27 файл, потому что мой /usr/bin/python27 была версия 2.7.12, и я был полон решимости возвратить исходный, который является 2.7.6. Теперь существует приблизительно в 2000 + пакеты в Ubuntu, которые являются Python, и я должен был заархивировать, который имеет этот файл в нем. После изучения архивов я понял, что существует только один пакет, который содержит этот файл: python2.7-minimal_2.7.6-8_amd64.deb

Таким образом, я установил это с dpkg:

sudo dpkg -i libpython2.7-minimal_2.7.6-8_amd64.deb 

dpkg: warning: downgrading libpython2.7-minimal:amd64 from 2.7.12-1~14.02 to 2.7.6-8
(Reading database ... 1548765 files and directories currently installed.)
Preparing to unpack libpython2.7-minimal_2.7.6-8_amd64.deb ...
Unpacking libpython2.7-minimal:amd64 (2.7.6-8) over (2.7.12-1~14.02) ...
Setting up libpython2.7-minimal:amd64 (2.7.6-8) ...

Последующий шаг был чем-то вроде шока. Я вошел в привычку к выполнению sudo apt-get -f install почти после того, как каждая теория или пробная версия управляют, чтобы я сделал в надежде, что это зафиксирует остальных. На самом деле, после того как я положил 2.7.6 на, исходное место (перезаписывающий более поздние версии)-f опция установки показало длинный список приложений и библиотек:

0 upgraded, 3 newly installed, 556 to remove and 8 not upgraded.
10 not fully installed or removed.
Need to get 0 B/354 kB of archives.
After this operation, 1,748 MB disk space will be freed.
Do you want to continue? [Y/n] y

Это было поворотным моментом. Я или делаю это, или я иду для другой опции (устанавливающий Ubuntu с нуля). Прежде чем я выполнил этого, я взял снимок всей истории в моем терминале с идеей, что, даже если я удаляю все, которые они освобождают и пакеты, которые зависят от более поздней версии Python, возможно, если мне нужно что-то вроде них, которые будут удалены, по крайней мере, у меня был бы список имен, которые я должен был установить.

Таким образом, я нажал Y.

Кулинария требовала времени. И другая проблема начала появляться с застенчивым сообщением:

WARNING: The following packages cannot be authenticated!
  libjack0 jackd1 jackd1-firewire
Install these packages without verification? [y/N] y

По существу у меня не было другой опции, но устанавливать его без проверки.

Теперь, я упомянул прежде, который это было плохое решение снести все репозитории для получения, программное обеспечение (был полон решимости переключить их один за другим). Я выбрал зеркальный исходный сайт ближе мне вместо основного сайта Ubuntu. Возможно, потому что вещи не были правильно установлены, безопасные ключи испортили. Я никогда не буду знать то, что было главной причиной для него.

В этой точке я не понял, насколько важный это, так неаутентифицируемое предупреждение следовало за мной в последующих командах. Но от другого бокового монтажа работал так, я не нашел это очень важным для отчаянного положения. Это было уже все или ничего, поэтому, пока это работало

Позже я переключился, чтобы видеть, могу ли я запустить 'программное обеспечение Updater' с надеждой, что updater разрешит другие зависимости. Но программное обеспечение Updater было строго. Это отказалось устанавливать любые обновления или фиксирует, по крайней мере, пока аутентификация не является установкой правильно. Я обнаружил замечательные способные команды такой как sudo apt-key update и sudo apt-key list не, что они сразу были полезны, но в некоторой более поздней точке, они на самом деле становились полезными.

Среди других интересных путей я нахожу это полезным:

apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys EEA14886 

Замена последняя с ключом Вам нужно. Также существуют 'Пароли и Ключи' применение, кроме которого я не находил особенно дружественным или полезным (обнаружить некоторые старые пароли для различных логинов)

В конечном счете эта проблема становится зафиксированной путем удаления всех .gpg файлов /etc/apt/trusted.gpg.d/. Быть укушенным, прежде чем я переместил их где-то в другом месте для резервного копирования, если мне нужны некоторые из них снова.

Что было полезно, здесь был:

sudo apt-get install launchpad-getkeys
sudo launchpad-getkeys
sudo apt-get update

панель-запуска-getkeys является интересной частью программного обеспечения, простого но эффективного. Сначала это читает все Ваши недостающие ключи, и затем это пытается получить их. Сохраняет тонну физического труда.

Теперь я мог правильно переустановить dpkg, и python2.7 при помощи Кв. - добираются.

Конец?

Можно думать, что существует конец этой истории. Система восстанавливается. Работа обновлений. Работа обновления программного обеспечения. Список деинсталлированного программного обеспечения с некоторым управлением и возвращающий некоторый ppa's вернулся в функции.

Но, было слишком рано, чтобы быть гордым на успехе в том же облегчении времени, было значительным.

Для не создания этой бесконечной истории, это немного указателей, которые я изучил более поздними объектами конкретной цели фиксации:

  • mod_wsgi действительно не работал с 2.7.6 (таким образом, я стремился иметь некоторую более позднюю версию, возможно, это было причиной во-первых, почему я искал обновление системного Python.
  • Flask и Virtualenv вели себя плохо. Обнаруженный, в котором они будут иметь некоторые команды /usr/local/bin таким образом, я имел к pip uninstall сопровождаемый путем удаления команд и затем переустановки этого правильно к системному Python не при помощи зернышка, а при помощи apt-get install python-flask ... на общих сведениях /usr/local/ относительно Python продолжал появляться во всем виде мест. Я думал, что удалил все вещи Python в /usr/local но имел проблемы с установленными модулями Python зернышка, поэтому каждый раз, когда я поразил проблему, я сначала делаю pip uninstall и затем установите его правильно.
  • Мое исходное чувство, что что-то понятое превратно, когда я установил llvm (и компилятор C обновления) не было без фактов. На самом деле кроме PPA JonathonF существует другой, который вносит глубокие изменения в системный Python, и это: ppa:ubuntu-toolchain-r/ppa. На самом деле, после того как я возвратил это в изображение внезапно, системный Python был обновлен от 2.7.6 назад к 2.7.12. Но целая система теперь работает правильно даже mod_wsgi и virtualenv. Это последнее одно (virtualenv) важно, и я удостоверюсь, что использовал его больше, когда я буду экспериментировать, даже если это virtualenv-лугом, который версия Python и их пытается смешать безотносительно. По крайней мере, если я смешаю Python, то я смешаю тот в virtualenv ;)

Привет ко всему tldr; люди :)

2
ответ дан 7 July 2018 в 05:02

Другие вопросы по тегам:

Похожие вопросы: