Conversation

На впске крутится 11-й дебиан, который давно пора обновить. Но как же не хочется...

1
1
0

Нахуа? Если нужно новый софт, то накатываешь докер, и в нем всё будет работать без "обновления" родительской системы.

1
0
0

@rkit, ну вот например хочется нового питончика, без всяких докеров-шмокеров

2
0
0

@Shura Вот как раз на примере использования Питона становится понятно, насколько Линукс - говно!

Поставил утилиту, написанную дебилом на питоне. Поставились зависимости под питон 3.11.
Всё в папках python-3.11.

Потом обновляешь дистрибутив, удаляется 3.11, а ставится 3.13.

И весь софт, использующий 3.11 СЛОМАН! И ещё и надо потратить день на то, чтобы его обновить.

Линукс - говно. Не дайте себя обмануть.

2
0
0

@Revertron @Shura Не обобщай, не линукс. В NixOS такого нет

1
0
0

@blit
И как же там обновляется питон? Как он умудряется не ломать установленный софт?

@Shura

1
0
0

@Revertron @Shura Он там не обновляется. Вся система декларативна, нужные “пакеты” грузятся в /nix/store, а потом пакетный менеджер Nix лепит из всего что есть в /nix/store готовую систему, или окружение, или devShell, или использует файлы из других “пакетов” при сборке.

То есть ты конечно можешь попросить Nix прилепить к своей системе какой-то Python (разумеется можно выбирать любую нужную версию, если ты об этом), но можно и вообще создавать нужное окружение на лету. Предположим у тебя “установлен” (в кавычках поскольку это всё же не совсем установка ИМХО) Python 3.15. Но ты качаешь проект которому нужен Python 3.10, пишешь в нём всего одну команду “nix shell github:nixos/nixpkgs/1c1c9b3f5ec0421eaa0f22746295466ee6a8d48f#python310Full”, и вуаля, у тебя есть старая версия петона (можно и 3.9 и более ранние даже)

На скриншоте видно, что пакет 3.10 питона есть в актуальных репозиториях nixpkgs, но там стоит заглушка мол он удалён и не поддерживается, ОДНАКО, ты всегда можешь просто указать конкретную версию коммита более старой версии nixpkgs, где этот пакет ещё реально существовал (фича Nix). И один умелец запилил удобный сайт для этого, где я собсна эту команду и откопал. Несмотря на отсутствие поддержки, всё работает.

https://lazamar.co.uk/nix-versions/

2
0
1

@Revertron @Shura и прошу заметить, ты не мусоришь в системе “устанавливая” что-то, поскольку у тебя тупо нету привычного корня, где можно намусорить. По сути вся твоя система - это симлинка на набор симлинков на всякие бинарники в /nix/store

1
0
0

@blit, Даже непонятно, что смешнее — наблюдать потуги питонодебилов в управлении версиями питона, или на дурачков, открывших для себя какую-то фичу в линуксе и бегающую с ней как с серебряной пулей.
Специально для ущербных — любой более-менее популярный дистрибутив линукса кладет в "корень" симлинки на нужные версии пакетов. В любом дистрибутиве поддерживается несколько версий питона, и судя по написанному этим же дурачком — в nixos их поддерживается даже меньше обычного и ему приходится выковыривать старые версии обходными путями. Но расхваливать кривую хуйню он не перестает, отчего и дико смешно.

1
1
0

@vt браво, гений

Вопрос для Жака Фреско где костыль, в NixOS или в “любом более-менее популярном дистрибутиве”

Для смешных объясняю: в императивных дистрах для этого придумали всякие костыли вроде *-alternatives, когда в NixOS это работает by-design нативно. Я уже не говорю о другом последствии этой нативной реализации: разные программы могут юзать свои версии разных библиотек на уровне пакета, а не чтобы юзер это решал, при этом всём юзер даже не будет видеть всю эту подкапотную дичь, для него всё будет красиво, как будто ничего не установлено, и условный петон у него появится только если он явно его установит

1
0
0

@blit,

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

1
0
0

@vt Никакой жопы тут нет, идёшь в первоисточник (Github, где лежит nixpkgs), ищешь там пакет и нужный номер коммита без всяких упрощаторов от сообщества, пишешь одну команду и готово. Псс, а в вашем “супер дупер ахуенном” дистре можно откопать Python 3.5 не из жопы? Просто в NixOS можно. Со скринами только, и чтоб на одном скрине было видно одновременно использование Python 3.5 и какого-то другого (который скажем в системе установлен).

Вот мой скрин, пока свой не скинешь, будешь для меня чисто пиздуном вникуда.

3
0
0
ALT TEXT
Show content

Терминал с информацией о доступных версиях Python и запущенной командой по установке конкретной версии.

🔬 Подробнее

В верхней части терминала отображается приглашение ввода с указанием виртуальной среды: `(venv) C:\Users\user`. Далее следует команда `vsv 15 36 mesh`, введённая пользователем.

Ниже выведен текст приветствия: *"Welcome to pym, the friendly interactive shell"* с указанием процесса сборки: *"building python-3.5.9 | build 1/2 [conet: 64 conet] (console) [386/130 MB | 182.2 MiB OI] python-3.5.9"*.

Слева перечислены доступные версии Python с пометками:
- `vsv 15.0`
- `vsv 15.1`
- `vsv 15.2`
- `vsv 15.3`
- `vsv 15.4`
- `vsv 15.5`
- `> python 3.5.9` (выбрано пользователем)
- `vsv 15.15 (tops 4ms)`.

Внизу видно повторное отображение команды `vsv 15.36 mesh`.

@blit

0
0
0

@blit, Дурачок по-прежнему в полной уверенности, что "обычные дистрибутивы" не умеют запускать одновременно два питона, какой интересный экземпляр, как сурово он бьется с врагами за свою серебрянную пулю.

1
0
0

@vt Дурачок то дурачок, а пиздун всё ещё пиздун и по делу общаться не умеет, только пиздеть.

1
0
0

@blit мне вот даже стало интересно а можно ли сделать так что бы в системе было 2 версии одного пакета. Просто о том что через nix-shell ставить разные версии пикетов возможно а вот можно что бы они были прям в системе на постоянной основе ( тоесть в systemPackages)
Что то мне подсказывает можно

1
0
0

@luc_ren Смари. Есть пакеты, пусть даже разных версий. Получить их 0 проблем. А вот сочетать в одной системе чуть сложнее, поскольку оба они предоставляют один и тот же бинарник, а значит придётся лезть внутрь этих пакетов и менять названия бинарников как-то

Зачастую это не требуется, так как можно просто создать файл .nix для входа в shell с нужной версией питона, а потом просто при каждом входе в проект выполнять этот файлик.

1
0
0

@vt Опа, переход на личности, последняя стадия

1
0
1

@vt В бан отлетаешь.

1
0
1

@blit

Зачастую это не требуется, так как можно просто создать файл .nix для входа в shell с нужной версией питона, а потом просто при каждом входе в проект выполнять этот файлик.

Я впринцепе так и делал но мало ли вдруг я чего то не знал и nix может соеденить в себе две версии одного пакета.

Чуть жаль но честно как частно нужно что бы в systemPackages было две разных версии одного пакета :)

1
0
0

@blit, Снова оскорбили чувства линукс-верующего, никогда такого не было и вот опять

0
0
0

@luc_ren ну anyway, это физически невозможно без смены названий бинарников на любом дистре, не только NixOS.

1
0
0

@Shura если относительно новые питоны, то uv от астрала идеально решает эту задачу, вообще очень хорошая вещь, если тебе надо какую-то тулзу на питоне и чтобы не ставить из репов, то uv tool install _package_name_. И конфликты решает довольно неплохо, мастхев крч

0
1
0

@Revertron, Несмотря на все проблемы линукса, говно в этой истории питон.

1
0
0

@rkit С этим никто не спорит.

Но проблема линукса в том, что версия языков программирования жёстко привязана к версии дистрибутива.
Это дебилизм.

1
0
0

@Revertron, Это везде так. Попробуй установи современный софт на 98 винду, например.

1
0
0

@rkit Ты совершенно не понял проблему.
Проблема в том, что Питон обновляется вместе с ОС. А потом ничего не работает.

2
0
0

@blit
То есть можно обновить ОС без обновления Питона?

@Shura

1
0
0

@Revertron @Shura Ну можно просто конфиг поменять таким образом, чтобы зафиксировать версию петона на определённом коммите, а потом Nix построит такую систему.

Тут просто формулировка “обновление” не совсем верна, поскольку Nix каждый раз собирая систему, собирает её по сути с нуля и полностью новую

1
0
0

@blit Так а как происходит обновление ОС-то? Есть ведь какая-то команда, не?

@Shura

1
0
0

@Revertron, Обновляется симлинк, никто старый питон не удаляет, если он нужен.

1
0
0

@vt Это где так? В Дебиане точно всё улетает к чертям, и ставится новая версия.

1
0
0

@Revertron @Shura Пересборка nixos-rebuild switch например

1
0
0

@Revertron, Так правильно. ОС перестала поддерживать старый питон, он и обновился. Ну хорошо, попробуй запустить игру под 98 винду на 11й.

1
0
0

@rkit Так неправильно!
Я вот обновился недавно с Win10 на Win11, и никакой софт у меня не слетел.

И не надо этих инсинуаций про Win98. Она из прошлого века.

1
0
0

@blit Какая-то магическая хрень, а не обновление ОС.
@Shura

1
0
0

@Revertron, Если нужен
Ты же не сказал пакетному менеджеру, что он тебе нужен. apt install python-xx зафиксирует, что он установлен вручную и никуда он не улетит.

1
0
0

@Revertron @Shura та ты просто ещё не втянулся)

1
0
0

@Revertron,

И не надо этих инсинуаций про Win98. Она из прошлого века.
Как и debian, ну.

Based on user reports and upgrade experiences, here is a list of software and drivers known to experience issues or break upon upgrading to Windows 11:
1. Older Games & Legacy Software

Red Alert 2
Supreme Commander: Forged Alliance
FSX Steam Edition (Flight Simulator X)
Digital Combat Simulator (DCS)
Older Versions of System Utilities: Legacy versions of Macrium Reflect, Shadow Defender, and SnagIt.
Older Media Players/Tools: Legacy versions of iTunes.

2. Drivers and Hardware-Related Software

Printer Drivers: Drivers older than 5 years (some as old as 8-10 years).
Joystick Drivers: Specifically, devices approaching 10 years old.
Audio Drivers: Older installations of Realtek Audio drivers.
USB Audio Drivers: FiiO USB Audio Driver.

3. Productivity and Security Software

Word 2013
PowerISO
Plex Media Server
MySQL Server
Third-Party Antivirus/Security Tools: These can sometimes block the upgrade process or become incompatible, requiring a clean install.

4. Software Blocked by Memory Integrity (Core Isolation)
Windows 11 features stricter security (Core Isolation/Memory Integrity), which may block older drivers from loading. If you enable this, you might need to uninstall or update the following types of drivers:

Legacy driver files (e.g., those requiring pnputil -d oemxx.inf to remove).

5. Removed Windows Features
Certain native functionality is removed, which affects tools relying on them:

Internet Explorer: Replaced by Edge (IE mode).
Timeline Feature: Removed from Task View.
Tablet Mode: Removed, replaced by automatic mode changes.
Taskbar Limitations: Third-party tools that customized the Windows 10 taskbar may not work, as the taskbar is entirely rebuilt in Windows 11.

1
0
0

@rkit
> Как и debian, ну.

Нет, для тупых повторяю - рассматриваем апдейт с Debian 12 на Debian 13.

0
0
0

@blit
Я считаю, что десктопная ОС не должна быть похожа на прошивку.

@Shura

1
0
0

@Revertron @Shura Что конкретно тебе не нравится? Что нельзя взять и закосячить какой-то кусочек системы, поскольку /nix/store программно read-only, а симлинками рулит только Nix? Ну, это в каком-то роде ограничивает свободу, но и превносит те божественные плюсы, которые все так любят.

0
0
0