LINUX.ORG.RU

Arch Linux перешел на Python 3

 ,


0

1

В Arch Linux произошло довольно масштабное, показательное изменение — теперь /usr/bin/python указывает на python3, а любые программы, требующие python2 — на /usr/bin/python2.
Все пакеты, связанные с этим, были изменены. Также масса пакетов из AUR уже исправлена.

Напомню, что Python 2.7 планируется быть последним крупным релизом в 2.x ветке.

Подробнее, из блога одного из разработчиков

>>> Подробности



Проверено: JB ()

Обновился, полет нормальный. Отвалилось только mintMenu из аура, пересобрал и проблема решилась.

Valoo ()
Ответ на: комментарий от muhas

> для тех кто не следит за дистром, да - внезапно.

Вот это мне занятся больше нечем, как за дистром следить, ога. Ща все брошу и начну следить!

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

>С/C++
Это два абсолютно разных языка, не?

Что не нравится?

Приведи пример костылей в С99, с учётом того, что это низкоуровневый язык.

anon_666 ()

А, вот, например, в inferno, такой проблемы бы просто не возникло. У пакетов, требующих python2, в /usr/bin/python находился (находился, а не указывал) бы питон2, и кто питон3 хотел, по тому же адресу обнаруживали бы питон3. Ибо.

ugoday ★★★★★ ()

Обновился, всё заработало, кроме моих AUR-овских пакетов. Пошел чинить.

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

> У пакетов, требующих python2, в /usr/bin/python находился (находился, а не указывал) бы питон2

И ты, конечно, можешь точно описать, как это делается?

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

> c++ обпатно совместим с С.

CL тоже (после тривиального преобразования) совместим с С.

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

>>> У пакетов, требующих python2, в /usr/bin/python находился (находился, а не указывал) бы питон2

И ты, конечно, можешь точно описать, как это делается?

да.

И как же?

А почему ты спрашиваешь?

Хочу понять, почему это невозможно на Linux.

tailgunner ★★★★★ ()
Ответ на: ZIG ARCH! от anonymous

Re: ZIG ARCH!

без второго мужика не наберёт, я гарантирую это

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

В inferno пространство имён файловой системы динамично и может меняться для каждого процесса. В линуксе --- статично, у всех процессов одно файловое дерево на всех. Таким образом, в инферно у процесса need-python3 и у процесса xachьu-pytnon2 по адресу /usr/bin/python будут располагаться разные файлы. Вообще запуску процесса предшествуют mount и bind, формирующие среду, в котором он будет исполняться, что наглухо исключает dll-hell.

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

дык, inferno это тот же plan9, только со встроенной виртуальной машиной.

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

>c++ обпатно совместим с С.

Не совсем.

Deleted ()
Ответ на: комментарий от ugoday

> В inferno пространство имён файловой системы динамично и может меняться для каждого процесса.

То, что ты читал рекламные материалы Inferno - это понятно.

В линуксе --- статично, у всех процессов одно файловое дерево на всех.

То, что ты мало знаешь о Linux - тоже понятно.

запуску процесса предшествуют mount и bind, формирующие среду,

man mount. Твои представления о Linux устарели на несколько лет.

наглухо исключает dll-hell.

DLL Hell исключается отсуствием DLL (Plan9-way, да).

Так будет нормальное объяснение того, какие именно операции над пространством имен процесса ведут к тому, что имя /usr/bin/python у разных процессов ссыслается на разные файлы?

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

Наверно, ты не попробовал полноценно работать в InkScape и не тыкал меню «Расширения».

pacman -S python-lxml

По сабжу: обновился, УМВР.

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

>жизненный цикл арчевода

Ты, я вижу, большой шутник. Удивительно, но пакеты, которые я мэйнтейню в ауре, почему-то сами не заработают. И арч тут непричем, есличо.

Кстати, основная система, т.е. бинарные пакеты, обновились на ура, всё работает, всё отлично. Хотя в тестинге народ наверное мучался с багами.

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

>В inferno... что наглухо исключает dll-hell.

Нонсенс, ибо Inferno == Hell == Адъ :)

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

>Так будет нормальное объяснение того, какие именно операции над пространством имен процесса

над пространством имен FS для процесса, смотри как в висте/7 реализовано для общих файлов/реестра для примера

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

>> Так будет нормальное объяснение того, какие именно операции над пространством имен процесса

над пространством имен FS для процесса

/usr/bin/python как бы намекает на ФС, да.

смотри как в висте/7 реализовано

Меня не интересуют виндовые костыли, правда.

tailgunner ★★★★★ ()

ох щи^W. не буду обновлятся ближайшие пару месяцев.

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

>Сильная привязанность дистрибутивов к Python2 заметно затормозит Python3. В той же Убунте PyQT, PyGTK, и куча других модулей от Python2.

В этом-то и сила дистров, у которых фиксированные релизы: переход на новую платформу сразу, целым репозиторием.

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

Последний раз я был школьником за 7 лет до появления Arch Linux, так что ответ - нет.

maxkit ()
Ответ на: комментарий от tailgunner

>/usr/bin/python как бы намекает на ФС, да.

да

Меня не интересуют виндовые костыли, правда.

значит только покакать?

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

Вы забыли добавить «и переустановка раз в полгода».

maxkit ()
Ответ на: комментарий от vilisvir

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

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

>> Меня не интересуют виндовые костыли, правда.

значит только покакать?

Кисо, ты что, обиделось?

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

>сурово. Думаю, что рановато.

Новость звучит круче, чем есть на самом деле. Просто теперь большая часть пакетов сидит с python2 в зависимостях. Прибавилось работы мэйнтенерам.

Но это не значит, что питон3 станет распространённее и под него народ кинется переписывать софт. Хотя стимул появится.

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

> man mount. Твои представления о Linux устарели на несколько лет.

т.е. я могу в рамках одного процесса сделать mount или bind, которые никак не затронут другие процессы?

какие именно операции над пространством имен процесса ведут к тому, что имя /usr/bin/python у разных процессов ссыслается на разные файлы?

В inferno нет PATH, вместо этого используется директория /appl. Когда, например, rc получает команду wm/wm это означает запустить файл /appl/wm/wm.dis

Пусть питон2 живёт в /usr/portage/python/python2, а питон3 в /usr/portage/python/python3. Тогда если сделать перед запуском процесса

;bind /usr/portage/pyton/python2 /appl/python

то вызов

; python

обратится к python2. С третьим питоном ситуация аналогична.

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

> То, что ты читал рекламные материалы Inferno - это понятно.

Ещё маны читал. Inferno --- идельная ось для чтения манов. Там, в общем-то, и заняться больше нечем.

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

Работы мэйнтейнерам особо не прибавилось, только единовременно, одноразовая правка пакбилдов всё ставит на свои места. Их в принципе тоже можно было править автоматически)

atommixz ()

А у нас давно уже...

# eselect python list
Available Python interpreters:
  [1]   python2.6 *
  [2]   python3.1

Не в том смысле, что у меня знерщт3, а в том, что давно переключить можно в любой момент. Туда и обратно :)

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

yaourt --sucre сделает всё) или помягче yaourt -Syu --aur --devel

Так же, makeworld из abs может быть поможет.

atommixz ()
Ответ на: комментарий от ugoday

вот, например, что происходит на моей машине перед вызовом терминала

; ns
bind / /
bind -ac '#U' /
bind /dev /dev
bind -b '#^' /dev
bind /chan /chan
bind -b '#^' /chan
bind -b '#m' /dev
bind -b '#c' /dev
bind '#p' /prog
bind '#d' /fd
bind /net /net
bind -a '#I' /net
bind -a /dev /dev
bind -a /net /net
bind /net.alt /net.alt
bind -a /net.alt /net.alt
bind -c '#e' /env
bind /locale/Moscow /locale/timezone
bind -a '#C' /
bind * /n/local
bind -b '#^' /chan
cd /usr/ugoday
;

куда-то сюда же, если нужно, следует и выбор питона вставить.

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