Восстановление критично важных для работы пакетов
I.Способ:
Cкачайте и поставьте бинарный пакет (для x86 или для amd64).
http://dev.gentooexperimental.org/binpkg/
Распакуйте полученный архив в корень системы:
tar xvpjf coreutils-6.9-r1.tbz2 -C /
Доставьте все зависимости для coreutils-6.1x.
Обновляете emerge coreutils до свежей версии.
II. Способ (оставляет после себя следы, настоятельно не рекомендуется частью форума)
Если случайно удалён\повреждён важный для нормальной работы системы пакет, то оживить систему можно следующим способом:
(Скажем, удалён Питон, без которого скрипт emerge работать не будет по команде emerge -C python) hdc1 - системный диск
Если невозможно зайти в систему в обычном режиме - загрузиться с загрузочного диска:
Если корень расположен на hda3
mount /dev/hda3 /mnt/gentoo
Если есть раздел на /boot. Если нет, то не писать следующую команду
mount /dev/hda2 /mnt/gentoo/boot
mount /dev/hda3 /mnt/gentoo
mount -t proc none /mnt/hda3/proc
mount -o bind /dev/ /mnt/hda3/dev
chroot /mnt/gentoo /bin/bash
env-update
source /etc/profile
(или, возможно, будет достаточно ROOT=/mnt/hda3/ emerge python без chroot'a)
Скачать
wget http://mirror.yandex.ru/gentoo-distfiles/distfiles/Python-2.4.4.tar.bz2
или с соседнего компьютера:
scp root@server2:/distfiles/Python-2.4.4.tar.bz2 /tmp
cd /tmp
tar -xjf Python-*.tar.bz2
cd Python-*
./configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --datadir=/usr/share --sysconfdir=/etc --localstatedir=/var/lib --with-fpectl --enable-shared --infodir=/usr/share/info --mandir=/usr/share/man
(для некоторых пакетов, можно убрать часть параметров)
make && make install
ln -fs /usr/bin/python2.4 /usr/bin/python2
ln -fs /usr/bin/python2 /usr/bin/python
После того, как питон восстановлен, можно обычным способом его обновить:
emerge python
P.S. Ещё многие проблемы возникают из-за того, что /var/tmp/ примонтирован с noexec , соответственно необходимо исправить
- Для комментирования войдите или зарегистрируйтесь
Имхо бред =) Есть
Имхо бред =)
Есть полуоффициальные бинарные пакеты. На них ссылку я уже как то приводил в теме про удаленные coreutils
например отсюда http://dev.gentooexperimental.org/binpkg/
можно их вкатать через qpkg или вручную через
tar xvpjf pkgname.tbz2 -C /
___________________________________________
Working on Gentoo for iPAQ hx4700 and Openmoko Neo Freerunner :-)
Если у вас компьютер с Windows, есть два выхода: выбросить компьютер в форточку или выбросить форточки с компьютера
В чём бред?
Если это помогает восстановить систему, в чем бред?
Давайте попробуем так:
Вы удаляете у себя питон emerge -C
а потом ставите своим способом (без всяких других телодвижений, как и написали) и смотрим, помогло ли Ваше решение
тем что ваш способ оставляет
тем что ваш способ оставляет кучу мусора в системе
а мой не оставляет =)
пример с кореутилс это уже показал. Пользуемся поиском
___________________________________________
Working on Gentoo for iPAQ hx4700 and Openmoko Neo Freerunner :-)
Если у вас компьютер с Windows, есть два выхода: выбросить компьютер в форточку или выбросить форточки с компьютера
Вы попробовали Ваш же способ? :)
Давайте, пробуйте ваш способ на своей системе.
А насчет мусора - может потом просто очистить сиcтему после восстановления? :)
Ох... Я знаю что он работает
Ох... Я знаю что он работает =) Причем с любым пакетом включая глибц.
а от всего мусора ее очистить сложнее чем ты думаешь =)
___________________________________________
Working on Gentoo for iPAQ hx4700 and Openmoko Neo Freerunner :-)
Если у вас компьютер с Windows, есть два выхода: выбросить компьютер в форточку или выбросить форточки с компьютера
Ясно, другим советуем, сами не выполняем :)
А все другие способы называем бредом.
Это способ который
Это способ который подразумевает сама система.
у тя есть гентовые бинарные пакеты и утилы для их установки которые не зависят ни от чего коме либц и либстдц++
Так что не нужно изобретать очередной велосипед на гусеницах. Все это уже давно придумано и продумано
___________________________________________
Working on Gentoo for iPAQ hx4700 and Openmoko Neo Freerunner :-)
Если у вас компьютер с Windows, есть два выхода: выбросить компьютер в форточку или выбросить форточки с компьютера
Понятно
Надеюсь ваш способ действительно помогает :)
Пример написанный по мотивам
Пример написанный по мотивам тотального удаления coreutils из за их блокировки с mktemp который теперь входит в состав coreutils
http://www.gentoo.ru/node/11316
___________________________________________
Working on Gentoo for iPAQ hx4700 and Openmoko Neo Freerunner :-)
Если у вас компьютер с Windows, есть два выхода: выбросить компьютер в форточку или выбросить форточки с компьютера
Пример то я видел,
Прошу заметить, бредом я это решение не называю :)
Да, вижу, написал winterheart.
Правда ссылка для x86 устарела, я бы дал так:
http://dev.gentooexperimental.org/binpkg/i686-stable/
Вообще то самый верный способ
Вообще то самый верный способ это юзать мозг и не удалять критически важные для системы пакеты.
К сожалению
К сожалению, такие ошибки делает большинство новичков, и не из-за недостатка мозгов, а просто из-за недостатка знаний
Есть ещё третий вариант ;)
Gentoo по-началу кажется весьма прозрачной системой. И по-началу это даже соответствует ожиданиям. Более того, по-началу даже развивает какие-то интуитивные способности, прививает зачастую ложно кажущееся понимание системы. Со временем понимаешь, что ни хрена ты не понимаешь. Но на самом деле всё ещё хуже, потому что у всех всё по-разному. Это зависит и от начальной подготовки, и от железа, и от софтовых потребностей. Да хрен его знает - от чего ещё! Конечно, не сравнить с другими линуксами и всё же. Так что ошибки неизбежны, и не только у новичков. Только не нужно их бояться и спешить искать другой дистр. И главное, на интуицию, которую так хорошо развивает Gentoo, не стоит полагаться. Метод научного тыка никогда ни к чему хорошему не приводил, это Windows-way. Не потому-ли Дэниэля Роббинса зазвали в Microsoft!? :) А вот как правильно, не знаю. Я пока ещё не нашёл ответ на этот вопрос...
.
Мои ИМВХО:
* Система a la "у всех всё по-разному" - лучше, а не хуже.
* На интуицию стоит полагаться! (Я под интуицией понимают неосознаваемую часть личного опыта)
* "Метод научного тыка" прекрасен. Дело в терминологии - снос Питона я к "методу научного тыка" не отношу
+1, я тут недавно emerge mpfr
+1, я тут недавно emerge mpfr -C сделал ессно не зная что за пакет(чистил систему...), нашел 2 способа решерния...
1) emerge mpfr -gO
2) второй описаный в теме ROOT="/tmp/123" emerge mpfr
поглядев в логи, почему падает конфигуратор, увидел что все связано с отсутствием /usr/lib/libmpfr.so.1
под рукой был ноут с аналогичной архитектурой.... не долго думая выполнил ROOT="/tmp/123" emerge mpfr -O
скопировал нужный файл на флэшку, отнес на поломатую систему., потом выполнил в ней же emerge mpfr -O
ps
rm /tmp/123 -rf
pps
данное решение в моей сетуации явилось оптимальным ни в доноре не в больном мусора не оказалось
способ решения зависит от сложности поломки =)
_______________________________________
грех обманывать компиляторы в субботу
Ну.. Я бы сказал что
Ну.. Я бы сказал что приведенный мною метод это gentoo-way. а то что привел ты это что то ближе к lfs или slackware
Вообще овичкам рекомендую добавить в FEATURES="buildsyspkg" тогда в случае косяка со сносом системных пакетов им не придется ничего выкачивать =)
___________________________________________
Working on Gentoo for iPAQ hx4700 and Openmoko Neo Freerunner :-)
Если у вас компьютер с Windows, есть два выхода: выбросить компьютер в форточку или выбросить форточки с компьютера
alexxy написал(а): рекомендую
Истину глаголишь :) Один раз меня это спасло, да и с опцией этой чувствуешь себя поспокойнее.
А вот и мои 5 копеек в вашей
А вот и мои 5 копеек в вашей истине:
Бывало такое, что FEATURES="buildsyspkg" шел лесом, потому как той версии в репах уже нет, а новая требует еще какую-нибудь зависимость. Вот после такого " западло-строения" {самому себе} хочется ооочень сильно и долго ругаться....потому как проканывают уже конкретно нестандартные темы....
知る者は言わず言う者は知らず
"Бабло, побеждает даже зло"
draft3r написал(а): Бывало
Специально для этого есть ключики -K и -G
?
Стандарт не подходит?
http://www.gentoo.ru/content/ya-udalilslomal-sistemnyy-paket-i-teper-gentoo-ne-gruzitsya-neuzheli-pereustanavlivatsya
:wq
--
Live free or die
Мне то как бы тема ясна уже
Мне то как бы тема ясна уже наковырялся вдоль и поперек всему возможными способами - спасибо. Вопрос в том как это сделать наименее безболезненно для системы. Нюансов на самом деле куча целая с тележкой. Начинай от того какой пакет(system, world ), какой в нем юз флаг, что он тянет, из какого репозитория установлен(включая локального), какие патчи туда были засунуты...... и тд тп и вся эта крутоверть всех зависимостей всплывет только в самом конце.
知る者は言わず言う者は知らず
"Бабло, побеждает даже зло"
not found :(
not found :(
Локальный оверлей растёт
УСТАНАВЛИВАТЬ ЧТО-ЛИБО c --prefix=/ или --prefix=/usr НЕЛЬЗЯ
Не пользуйтесь первым способом. УСТАНАВЛИВАТЬ ЧТО-ЛИБО c --prefix=/ или --prefix=/usr НЕЛЬЗЯ. Это лишь по началу кажется нормальным решением. Однако установленные таким образом файлы действительно трудно найти (из-за ошибок в Makefile'ах make uninstall может снести не всё), но при этом они лежат в каталогах видных отовсюду, и в последствии такие "установки" приводят к невозможности обновить/почнить или вообще использовать систему.
Если вы можете что-нибудь собирать собирайте от обычного пользователя и ставьте в /tmp/local или /home/local или на худой конец в /usr/local и потом временно используйте оттуда, используя PATH, LD_LIBRARY_PATH, и подобные переменные окружения для установки случайно снесённых пакетов. После того как восстановились, сносите всё лишнее: /tmp/local/ /home/local и подобное. Но повторяю, НИКОГДА НЕ СТАВЬТЕ в системе что-либо с помощью ./configure && make && make install, а если сделали, не рассказывайте никому и никогда не вешайте баги ни здесь ни на bugs.gentoo.org.
Собственно то о чем я и
Собственно то о чем я и говорил =)
___________________________________________
Working on Gentoo for iPAQ hx4700 and Openmoko Neo Freerunner :-)
Если у вас компьютер с Windows, есть два выхода: выбросить компьютер в форточку или выбросить форточки с компьютера
pva написал(а): ...или на
вообще-то по FHS /usr/local и отводится для всего того, что пользователь собирает ручками! а домашний каталог вообще-то желательно монтировать с параметрами nodev,noexec,nosuid и т.д.
Справделивости ради
Необходимо отметить, что цель
uninstall
присутствует далеко не во всехMakefile
'ах.Поэтому рассчитывать на неё (не зная точно, что в конкретном
Makefile
'е она есть) несколько наивно.:wq
--
Live free or die
Допустим сделал я по второму
Допустим сделал я по второму способу через make && make install, как мне после нормального обновления emerge python удалить всё что осталось от ручной установки?
Отследить все файлы, которые
Отследить все файлы, которые поставились в ручном режиме. Элементарно же!
Не грусти, товарищ! Всё хорошо, beautiful good!
=) Понятно... после ручной
=) Понятно... после ручной установки запустить ручное удаление.
есть еще один способ. Почему
есть еще один способ. Почему про него не гу-гу я не знаю.
Основывается на возможностях портаге к кросскмпиляции.
Проще говоря , после загрузки с live-cd переопределить ROOT и PORTAGE_CONFIG_ROOT
Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)
Блин, как сложно то все
Починка python в случае появления проблемы "bash: /usr/bin/emerge: /usr/bin/python" лично у меня сводилась к следующим пунктам:
1. # ls -FGg /usr/bin/python (проверяем целы ли ссылки, зачастую причина в слете python-wrapper, привожу как пример);
2. # если все таки /usr/bin/python -> python-wrapper* выделено красным (это уже сигнал о битой ссылке) и при этом /usr/bin/python-wrapper* в списке отсутствует, то следовательно надо ее создать;
3. # ln -fs /usr/bin/python2.7 /usr/bin/python (в моём случае так, в Вашей ситуации проверяйте какая версия по списку есть, на ту и ссылку делаете);
4. # emerge dev-lang/python:2.7 или emerge -K dev-lang/python-2.7;
5. # контрольная проверка ls -FGg /usr/bin/python (в большинстве случаев ссылка /usr/bin/python -> python-wrapper* восстанавливается и в списке появляется "злополучный" /usr/bin/python-wrapper*
P.S. Почему теряется /usr/bin/python-wrapper* вопрос другой: но каждый раз после пересборки пакетов.
discord: hwline#1904
constantly use: funtoo-linux, ubuntu
А почему не воспользоваться
А почему не воспользоваться eselect python ?
ну да
В принципе логично было бы этим воспользоваться...но по какой то причине не всегда после "bash: /usr/bin/emerge: /usr/bin/python" работает. А если и запускается, то python-wrapper не восстанавливает.
В причины не особо углублялся, в виду загруженности. Впрочем может сейчас ситуация изменилась, как-нибудь на досуге проверю.
P.S. Потестил, специально удалил /usr/bin/python-wrapper.
Если у Вас по каким то причинам в папке /usr/bin отсутствует python-wrapper , и eselect python set --python2 n и/или eselect python set --python3 n (вместо n свою версию удава) не помогает (да и не должно уже в принципе помочь). То emerge eselect-python. Файл должен восстановиться.
Если emerge отваливается в ошибку, смотри мой пост выше.
discord: hwline#1904
constantly use: funtoo-linux, ubuntu
☺
Чем отличается
питонdev-lang/python отудаваvirtual/udev:wq
--
Live free or die
Anarchist написал(а): Чем
Вопрос требующий уточнения? Может быть. Опускаю точность перевода. Уточню только точность восприятия, со своей стороны.
Во-первых, virtual/udev теперь удавом обзывается? Тут я не совсем в курсе... И собственно я не о нём речь вёл.
Во-вторых, касаемо питона dev-lang/python, то для меня boa рядышком с dev-lang/python, они прям паровозиком друг за другом на мой взгляд. И мне уже так привычно. Так что, считайте это оговоркой по Фрейду. Я бы вообще Каа обозвал эту связку, и так было бы понятнее на мой взгляд. Но повторюсь, это на мой взгляд. Как Вы это воспринимаете, это Ваше личное дело.
discord: hwline#1904
constantly use: funtoo-linux, ubuntu