LINUX.ORG.RU
ФорумAdmin

Gentoo. Emerge и Python.


0

1

Здравствуйте,

С Gentoo столкнулся впервые, поэтому прошу сильно не пинать.
Попросили поглядеть на старый сервак, на котором появились проблемы с обновлением / сборкой пакетов. Вот ошибка при попытке запустить emerge с любыми опциями:
Traceback (most recent call last):
File «/usr/bin/portageq», line 40, in <module>
import portage
File «/usr/lib/portage/pym/portage/__init__.py», line 365, in <module>
if platform.system() in ('FreeBSD',):
File «/usr/lib/python2.6/platform.py», line 1227, in system
return uname()[0]
File «/usr/lib/python2.6/platform.py», line 1194, in uname
processor = _syscmd_uname('-p',")
File «/usr/lib/python2.6/platform.py», line 951, in _syscmd_uname
rc = f.close()
IOError: [Errno 10] No child processes

Выбор другой версии Питона и запуск python-updater ни к чему не приводят - сыпятся подобные ошибки.
revdep-rebuild опять же приводит к вышеуказанной ошибке.
Ядро: 2.6.17-gentoo-r4
Куда копать?


Ответ на: комментарий от delete83

А вот тут странность. Показывает следующее:
gcc-config -c
* gcc-config: Could not get portage CHOST!
* gcc-config: You should verify that CHOST is set in one of these places:
* gcc-config: - //etc/make.conf
* gcc-config: - active environment

Это я поправил после посещения топика на другом форуме. Теперь выдает версию компилятора.

regexp
() автор топика
Ответ на: комментарий от regexp

А 'gcc-config -l'? Если я не ошибаюсь, там должно быть две версии gcc (обновление прошло хреново), впрочем, это уже не так важно сейчас.

Что тестовая программка то выдает?

delete83 ★★
()
Ответ на: комментарий от delete83

gcc-config-l

[1] i686-pc-linux-gnu-3.3.6
[2] i686-pc-linux-gnu-3.3.6-hardened
[3] i686-pc-linux-gnu-3.3.6-hardenednopie
[4] i686-pc-linux-gnu-3.3.6-hardenednopiessp
[5] i686-pc-linux-gnu-3.3.6-hardenednossp
[6] i686-pc-linux-gnu-3.4.6
[7] i686-pc-linux-gnu-3.4.6-hardened
[8] i686-pc-linux-gnu-3.4.6-hardenednopie
[9] i686-pc-linux-gnu-3.4.6-hardenednopiessp
[10] i686-pc-linux-gnu-3.4.6-hardenednossp
[11] i686-pc-linux-gnu-4.1.2 *

Что тестовая программка то выдает?

bash: ./a.out: cannot execute binary file

regexp
() автор топика
Ответ на: комментарий от iZEN

А чё такой старый GCC? На FreeBSD в системе и то — 4.2.2 (раньше был 4.2.1).

Ну уж какой был «даден» ;-)

regexp
() автор топика
Ответ на: комментарий от regexp

Неа. Не запускается, потому что был скомпилен под другую ОС. Грубо говоря, либо у вас на удаленной машине не elf, либо вы на своей машине скомпилили под bsd/win32/etc. Ну, попробуйте на удаленной машине перекомпилить, правда я все равно не знаю решения проблемы с SIGCHLD.

delete83 ★★
()
Ответ на: комментарий от delete83

Есть альтернативный путь (наверняка хреновый, но если уж очень надо починить систему и все остальное не работает...) - заменить в файле /usr/lib/python2.6/platform.py вызов popen() на вызов system(). Говорят, он работает в чаще, чем popen (мопед не мой, в сети слышал), но тут я вам тоже не помощник, потому что пистон так и не удосужился выучить. Не понравился он мне. Думаю, baverman с радостью поможет. Главное, потом (если вообще поможет) хак этот злостный убрать, чтобы в будущем на грабли какие-нибудь не наступить.

delete83 ★★
()
Ответ на: комментарий от delete83

Делали. Не помогло.

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

regexp
() автор топика
Ответ на: комментарий от backbone

Current make.profile symlink: /usr/portage/profiles/default/linux/x86/10.0

regexp
() автор топика

Так, чтобы решить конкретно эту проблему нужно cоздать файл /usr/lib/pythonX.Y/site-packages/sitecustomize.py

import platform

platform.uname = lambda: ('Linux', 'homesystem', '2.6.17-gentoo-r4',
    '#5 Thu Aug 17 18:52:02 GMT 2006', 'i686', 'Intel(R) Pentium(R) 4 CPU 2.00GHz')

X.Y — версия питона. Не знаю какой интерпретатор был актуален а генте на тот момент, но скорее всего это 2.5.

Но чую, это только вершина айсберга.

baverman ★★★
()

По-моему, проще распаковать новый stage, предварительно сохранив /var/lib/world, конфиг ядра, etc. Всё-таки, Gentoo - rolling-release дистрибутив и требует обновлений хотя бы раз в несколько месяцев. Учитывая профиль, каких-то хитрых настроек не делалось. А openrc всё-равно настраивать придётся да и пересобирать систему, т.к. компилятор обновится. Я бы почитал хэедбук и «поставил» заново.

backbone ★★★★★
()

Я бы попробовал обновить system распаковав stage. Потом обновлял бы пакеты стандартными средствами.

soomrack ★★★★★
()
Ответ на: комментарий от anonymous

прям на живую распаковывать?

Можно и на живую, если есть бекап и сервер не критичный. Но лучше для начала в виртуалке попробовать.

soomrack ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.