Gentoo: установите отдельную более новую версию Python без обновления ОС или текущей версии Python.

В настоящее время у меня есть версия Python 2.5.2.

Когда я запускаю эту команду:

emerge -a python:2.7

я получаю это сообщение

Calculating dependencies... done!

emerge: there are no ebuilds to satisfy "dev-lang/python:2.7".

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

Спасибо


person Karim Mtl    schedule 02.11.2015    source источник
comment
Прошло много времени с тех пор, как я использовал Gentoo, но, похоже, они прекращены поддержка 2.5 более 2 лет назад. Можете ли вы объяснить, почему ваша система настолько устарела, и какие шаги вы предпримете, чтобы исправить это? На этот вопрос невозможно ответить без этого контекста.   -  person Two-Bit Alchemist    schedule 03.11.2015
comment
Причина в том, что у нас есть огромный устаревший код в Python 2.5, который мы не можем позволить себе перенести, потому что в данный момент у нас недостаточно ресурсов.   -  person Karim Mtl    schedule 03.11.2015
comment
Опять же, я не знаком с Gentoo, не использовал его почти шесть лет, но мне кажется, что вам нужно читать новости за последние два года и медленно, осторожно обновлять всю вашу систему. . Я сомневаюсь, что для любого Linux, такого как Gentoo, существует решение, которое не предполагает приведения всей вашей системы в соответствие с современными требованиями, поскольку Python 2.5 давно устарел, а 2.7 (ваша цель обновления) является «текущей стабильной».   -  person Two-Bit Alchemist    schedule 03.11.2015


Ответы (1)


Ваша самая большая проблема заключается в том, что текущее дерево портежей не содержит пакета 2.5, и я подозреваю, что оно говорит вам, что 2.7 не существует, потому что вы давно не обновляли свое дерево (emerge --sync). Любое обновление Python2, которое вы сделаете, заставит вас перейти с версии 2.5 на версию 2.7. Чтобы сохранить 2.5 в качестве атома, поддерживаемого Portage, вам необходимо включить оверлей, который его поддерживает. Быстрый поиск показал, что лучше всего начать с оверлеев dberkholz и embedded-cross. По крайней мере, когда-то они включали python-2.5. Вам нужно будет использовать непрофессионала (Layman Wiki), чтобы получить их.

Лучшей альтернативой может быть обновление (которое должно дать вам 2.7), а затем установка 2.5 вручную. Вам нужно будет правильно управлять своей средой, особенно если ваши модули 2.5 не запускаются из командной строки. Лучше всего начать здесь: руководство по Eselect для разработчиков. Эта ссылка покажет вам, как взять вашу пользовательскую неподдерживаемую сборку (python-2.5) и заставить систему ее распознать. Таким образом, вы можете поддерживать свою коробку в актуальном состоянии, поддерживать свой Python 2.5 и использовать eselect, чтобы делать что-то «правильным образом».

Какой бы путь вы ни выбрали, похоже, что у вас есть работа для вас с такой старой настройкой. Вариант № 1 может быть проще, если вы предпочитаете не делать большое обновление системы. Использование layman для захвата ebuild-файлов, не входящих в текущее дерево портежей, может уменьшить количество пакетов, которые необходимо пересборить.

Учитывая выбор, я бы рекомендовал вариант № 2. Это дает вам более современную систему и кажется более правильным подходом.

person gravy21    schedule 13.11.2015
comment
Спасибо за понимание - person Karim Mtl; 13.11.2015