LINUX.ORG.RU

Как установить python-программу без лишних дополнений

 , , ,


0

1

Хочу установить protonvpn на porteus 4, используя исходики https://github.com/ProtonVPN/linux-app/releases/tag/1.7.0

# pushd linux-app-1.7.0
# /usr/bin/python3 setup.py install 

Проблема возникла с тем, что у слаки нет systemd, а эта программа его хочет использовать, хотя и может работать без него

Installed /usr/lib64/python3.9/site-packages/protonvpn_gui-1.7.0-py3.9.egg
Processing dependencies for protonvpn-gui==1.7.0
Searching for systemd-python
Reading https://pypi.org/simple/systemd-python/
Download error on https://pypi.org/simple/systemd-python/: unknown url type: https -- Some packages may not be found!
Couldn't find index page for 'systemd-python' (maybe misspelled?)
Scanning index of all packages (this may take a while)
Reading https://pypi.org/simple/
Download error on https://pypi.org/simple/: unknown url type: https -- Some packages may not be found!
No local packages or working download links found for systemd-python
error: Could not find suitable distribution for Requirement.parse('systemd-python')

Я пытался установить все эти systemd-python, но у меня не вышло (и большого желания не было заниматься извращением), и подумал, что можно без каких-либо модулей скомилировать программу как в cmake добавляя -Dmodule, на сколько я помню.

Итак вопрос - можно ли установить эту python-программу на porteus, исключив установку systemd-python, как в cmake, добавив параметр -Dyour_module?

Не знаю, что ты собрался компилировать, но это текстовые файлы

Если ты считаешь, что может работать без systemd, убери из кода упоминания systemd

Но раз ты до сих пор этого не сделал, то скорее всего твое предположение ошибочно

router ★★★★★ ()
Последнее исправление: router (всего исправлений: 2)
Ответ на: комментарий от router

У меня были такие мысли, но это не очень элегантный путь. Я бы хотел, чтобы можно было написать примерно так:

/usr/bin/python3 setup.py install --exclude-module="systemd"

Но я не знаю, заложена ли не документированная возможность установки программы без выбранных модулей.

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

Спасибо! Но там архив с исходником отсутсвует. Ладно, погляжу что можно будет сделать с нынешним исходником. Спасибо.

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

я так понимаю вы слакварь установили совсем недавно и не знаете что такое слакбилды, и не понимаете что что «я бы хотел» вообще в принципе не работает нигде, если только вы за это не готовы платить или разработчик по каким-то своим шкурным интересам не пытается быть максимально отзывчивым к хотелкам пользователей.

Данный слакбилд соберет вам минимальный тулчейн с cli интерфейсом для работы с этим впн вендором, если по простому вы получите консольную программу клиент для подключения к впн.

Но там архив с исходником отсутсвует

смотрите внимательней.

abcq ★★ ()

Изучи английский и перестань всякие домыслы придумывать. Он не на systemd ругается а на битый урл из-за неизвестного протокола «https» (надо видимо «http» а тут из-за опечатки s добавилось), из-за чего он не может скачать зависимость.

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

кстати да, я чет даже и не посмотрел что там в ошибке написано. Да в любом случае, ТС скорее всего не осилит слакварь, вообще не понятно зачем он в нее полез если он явно не ИТ специалист и не пишет код хотя бы на уровне «для себя». Таким людям в слакваре будет очень тяжело.

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

Там есть ссылка. И есть ссылки на пакеты зависимостей, часть из них в 15.0 уже есть.

PS А что на slackbuilds.org сценарии сборки для 15.0 так и не появились?

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

это норма для слаквари, нужно самому разбираться в слакбилдах, но в вашем случае проще просто из pypi.org напрямую через pip в виртуальное окружение затянуть в домашней директории и просто алиасов прописать в локальный bashrc ну или симлинков накидать в локальный ~/local/bin. Ссылки там битые, потому что слакбилд давно не обновлялся. Сайт открывается только через впн, но кто ищет, тот найдет и актуальные ссылки и другие пути которые описал выше для установки, ну и как выше подметил @firkax у вас в принципе скорее всего и гуи клиент запуститься, просто нужно немного разбираться в теме того как работает python и core-utils, ну и вообще linux в частности, в общем попробуйте просто проставить как я описал выше сделать pip3 --user install protonvpn-cli естественно перед этим у вас должен быть проставлен python, pip ну и если будете разворачивать в виртуальном окружении то любой на выбор vevn, virtualen, pipenv, etc

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

Соглашусь что я очень юн в пользовании linux с 2016г. Я стал пользоваться porteus с 2018 года, и там для установки программ не используются слак-билды, хотя таким образом тоже можно устанавливать програамы, но тогда система точно превратится в свалку-слаку :) Вместо этого используется принцип модульности, т.е. создаётся архив .xzm с нужными каталогами /usr /bin /etc /var и т.д и затем этот архив с программой и библиотеками монтируется/размонтируется в режиме реального времени, что позволяет контролировать систему и разбираться в проблемах. Это эффективней чем appimage, flat-pack, snap. Мне это очень нравится подход в porteus, но как видите он тоже не совершенен :)

А по поводу платить. Я бы мог использовать ubuntu или прочее, но мне не нравятся эти deb системы, т.к. я не могу глубоко погрузиться в изучение этих систем, ибо когда начинаю, то много чего ломается. Вспомнил, когда только начинал знакомиться с debian, как однажды ввёл apt purge и мне предложили удалить лишние зависимости. Удалил… в итоге после перезагрузки система не загрузила gui и с того времени я понял, что не стоит доверять команде apt purge. А в porteus все самостоятельные поломки очень легко исправлять, удаляя внесённые изменения.

А мне хотя бы cli vpn, хоть что-то. Терминал на много удобней бывает, чем gui.

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

архив с программой и библиотеками монтируется/размонтируется в режиме реального времени, что позволяет контролировать систему и разбираться в проблемах.

Извращение, дрючево, излишняя абстракция типа флптпака но не флатпак. Изолированные системы как правило усложняют отладку.

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

Дело в том, что я без труда установил самостоятельно systemd-python и появилась другая ошибка связанная с systemd, которой у меня в системе вообще быть не может.

Я просто хотел узнать, можно ли прописать в команду

python3 setup.py install

какое-либо исключение, чтобы установщик «забыл» про существование systemd-python? Вот в чём был мой вопрос. А так-то понятно, что установщик не может, толи скачать, толи найти там этот systemd, и меня это мало интересовало. Я просто взял и установил этот пакет вручную, но затем там ещё появилась ошибка. Я бы её решил, но за ней скорее всего появилась бы третья. В результате, я бы смастерил systemd в слаке. Что бы это было за извращение, простите? Поэтому чтобы не терять времени, я хотел у вас узнать, возможен ли такой вариант, чтобы указывать установщику, что нужно добавлять, а чего не надо, как это сделано в cmake и других компиляторах, где например не требуется wayland или как в wine на 64-битной, где компилируя, нужно указывать, что 32-битная версия не требуется, иначе у тебя не скомпилируются исходники.

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

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

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

Да в любом случае, ТС скорее всего не осилит слакварь, вообще не понятно зачем он в нее полез если он явно не ИТ специалист и не пишет код хотя бы на уровне «для себя»

Все мы с чего-то начинали. И я не считаю себя гуру, вовсе нет, но само по себе это достаточно увлекательное занятие, хоть я и связан с миром IT.

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

Поэтому мне это достаточно хорошо помогало понимать структуру каталогов linux

Сомнительное знание. Это лишь определенное соглашение, которое дистроделы используют для организации. Различные дистрибутивы кидают библиотеки, бинарники, конфиги и все такое в разные каталоги.

xDShot ★★★★★ ()

Касательно вопроса, можно посмотреть какой именно бинарник использует systemd юнит и дергать его напрямую для подключения, либо написать свой сервис конфиг для автозапуска.

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

устанавливать через setup.py это последнее дело, вы просто поломаете систему так без понимания того что и куда и главное как будет установлено в систему, если уж хотите поупражняться то делайте это хотя бы в виртуальном python окружении или вообще в контейнере или виртуалке. Посмотреть есть ли что-то подобное можно просто посмотрев внутрь скрипта установки или запустив его без параметров, скорее всего он вам подскажет какие параметры его запуска вообще есть.

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

Это понятно, но слакварь она не для новичков, для нее обязательно иметь бекграунд использования unix и очень желательно уметь находить инфу самостоятельно и хоть как-нибудь хоть на чем-то писать программы, потому что она не особо сильно отличается от подхода LFS когда кто-то за вас не удосужился подготовить слакбилд или его в принципе не существовало никогда, можно конечно туда напихать всяких других пакетных систем, но тогда и не стоило брать слакварь если вы все равно ее пытаетесь превратить в дистрибутив в менеджером пакетов.

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

Сама по себе ситуация кажется смешной. Мне нужна программа для создания vpn, но чтобы её скачать, нужно vpn… https://github.com/Rafficer/linux-cli-community/archive/v2.2.11/linux-cli-community-2.2.11.tar.gz Вот что мне нужно скачать. Буду использовать средства которые знаю, чтобы достать этот архив :)

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

да в слакбилде для 15 версии уже все ссылки корректные просто скачивайте слакбилд для актуальной версии и используйте, ну или как выше описывал, т.к. все эти клиенты на pyton они есть так же и в репозитории pypi.org и ставятся и оттуда вполне просто.

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

Вообщем, решил эту проблему пока таким образом - установил openvpn и настроил vpn через консоль. Однакож я не смог скачать архив https://github.com/Rafficer/linux-cli-community/archive/v2.2.11/linux-cli-community-2.2.11.tar.gz Мне выдаёт такое

the given path has multiple possibilities: #<Git::Ref:0x00007effe82104f0>, #<Git::Ref:0x00007effe8217c50>
SaintAnd ()
Ответ на: комментарий от xDShot

Касательно вопроса, можно посмотреть какой именно бинарник использует systemd юнит и дергать его напрямую для подключения, либо написать свой сервис конфиг для автозапуска.

Интересная мысль. Хотя с systemd я не много занимался, но понимаю о чём идёт речь. А автозапуск сделать - это ерунда.

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

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

Согласен, что толку нет пихать туда пакетные менеджеры, но я и не пытаюсь это сделать, да и не нужно. Вот как раз тут отсутсвие пакетного менеджера и помогает вникать в процессы системы. Но когда чтобы установить программу нужно ввести одну команду, а пакетный менеджер всё сделает за тебя, то и нет желания вникать, что от чего зависит и что нужно программе. А каждый выбирает то что ему удобно :)

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

Ну как бы да, там подойдет любой клиент который умеет работать с форматом файла настройки openvpn, у них в поддержке даже статья есть как это дело настроить на базе openvpn клиента https://protonvpn.com/support/openvpn-windows-setup/ в принципе gui приложения openvpn ничем не хуже, при том вроде бы было написано на языке с нативным исполняемым файлом, а как по мне это лучше чем скрипты на python.

По поводу ссылки они там опять переиначили структуру каталогов и теперь на актуальную версию ведет ссылка

https://github.com/Rafficer/linux-cli-community/archive/refs/tags/v2.2.11.tar.gz

а на старую указывают две внутренние ссылки git как vcs, поэтому возникает неоднозначность и такой вывод вы имеете место наблюдать на github.

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

в принципе gui приложения openvpn ничем не хуже, при том вроде бы было написано на языке с нативным исполняемым файлом, а как по мне это лучше чем скрипты на python.

Да я использовал их инструкции, но gui мне не нужен. А так списибо! :)

По поводу ссылки они там опять переиначили структуру каталогов и теперь на актуальную версию ведет ссылка

https://github.com/Rafficer/linux-cli-community/archive/refs/tags/v2.2.11.tar.gz

а на старую указывают две внутренние ссылки git как vcs, поэтому возникает неоднозначность и такой вывод вы имеете место наблюдать на github.

Спасибо, не знал об этой особенности. Раньше встречался с таким у других проектов и не понимал в чём дело. Спасибо тебе abcq

SaintAnd ()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.