Здравствуйте!
Хотел было обновить удаленную машинку с Linux FC8 до версии 14, через SSH. Руководствовался статьей обновления системы через YUM. Но случился конфуз и я командой yum remove удалил какой-то, как мне показалось, ненужный пакет, который, в свою очередь, потянул за собой кучу зависимостей, в том числе сам YUM и самое страшное - RPM...
Подскажите пожалуйста способы восстановить RPM, скомпилировать его не выходит, так как после make install он вываливается с ошибкой зависимостей и как я понял хочет gcc, который тоже был удален. Спасибо.
Восстановление и обновление Fedora core 8
Не знаю, насколько это будет правильно, но, с учётом того, что rpm-файлы — это прежде всего архивы, почему бы просто не закачать на сервер rpm файл программы rpm (извините за тавтологию :D ) и затем, разархивировав его, «раскидать» файлы по нужным каталогам. После этого обновить данный пакет уже штатным образом.
в том числе сам YUM и самое страшное - RPM...
Странно Yum удалил сам себя? А что осталось то? Посмотреть установленные пакеты можно командой от пользователя:
yum list installedЕсли покажет, то всё в порядке.
А для сборки из сорцев устанавливаются соответствующие пакеты:
sudo yum -y groupinstall "Development tools"Lupo Alberto, чем можно разархивировать "RPM.rpm"?
redix,
bash-3.2# yum
bash: yum: команда не найдена
Lupo Alberto, Спасибо, попробую разархивировать.
redix, интересный способ, но способ рисковый, можно остаться без системы вообще, хотя выбор то особо не велик )
http://pkgs.org/centos-6-rhel-6/centos-rhel-i386/yum-3.2.29-40.el6.centos.noarch.rpm.html Вот здесь зависимости yum-a.
Если распаковывать, то займёт времени...
Нашёл скрипт
#!/bin/sh
pkg=$1
if [ "$pkg" = "" -o ! -e "$pkg" ]; then
echo "no package supplied" 1>&2
exit 1
fi
leadsize=96
o=`expr $leadsize + 8`
set `od -j $o -N 8 -t u1 $pkg`
il=`expr 256 \* \( 256 \* \( 256 \* $2 + $3 \) + $4 \) + $5`
dl=`expr 256 \* \( 256 \* \( 256 \* $6 + $7 \) + $8 \) + $9`
# echo "sig il: $il dl: $dl"
sigsize=`expr 8 + 16 \* $il + $dl`
o=`expr $o + $sigsize + \( 8 - \( $sigsize \% 8 \) \) \% 8 + 8`
set `od -j $o -N 8 -t u1 $pkg`
il=`expr 256 \* \( 256 \* \( 256 \* $2 + $3 \) + $4 \) + $5`
dl=`expr 256 \* \( 256 \* \( 256 \* $6 + $7 \) + $8 \) + $9`
# echo "hdr il: $il dl: $dl"
hdrsize=`expr 8 + 16 \* $il + $dl`
o=`expr $o + $hdrsize`
dd if=$pkg ibs=$o skip=1 2>/dev/null | gunzip | cpio -idmuv || dd if=$pkg ibs=$o skip=1 2>/dev/null | bzip2 -d | cpio -idmuv
...работает. В качестве аргумента передаёте rpm-файл, в текущей директории получаете tar.gz-архив.
redix, интересный способ, но способ рисковый, можно остаться без системы вообще
На pkgs.org вообще пишут
# yum install yumНадо пробовать.
Ещё вопрос. Почему именно Fedora 14? Она же не поддерживается какое то время. Если это сервер, то логичнее было бы установить Centos 6.4 он по требованиям ничем не отличается.
Я бы yum в черный список занес, раз он сам себя может удалить. Честно говоря, я в шоке от этого топика. В rpm-based дистрибутивах возможность вот так поломать систему чуть ли не штатная - пакетный менеджер не должен зависеть по возможности ни от чего, в Slackware, например, все критически важное даже статически линкуется, и как следствие, способно работать даже в другой версии системы.
Я бы yum в черный список занес
Там не в blacklist пишется, а в yum.conf и можно в ***.repo файлы, вот таким образом:
exclude=yum rpmРечь идёт о FC8, может на данный момент что то изменилось.
Ещё вопрос. Почему именно Fedora 14? Она же не поддерживается какое то время. Если это сервер, то логичнее было бы установить Centos 6.4 он по требованиям ничем не отличается.
Нету физического доступа к серверу, остается только вот так обновлять, с помощью yum-а. Пару машин удалось обновить, а вот на этой я почему то решил почистить orphans пакеты, ну вот и почистил)
Не помню где читал, но в RedHat-based дистрибутивах этого делать не рекомендуется.решил почистить orphans пакеты
Заходи если что. :)Спасибо всем откликнувшимся