LINUX.ORG.RU

Как установить библиотеку psycopg2 в древней Astra 1.3 (без pip и без интернета) ?

 , , ,


0

1

Имеется древний дистриб Astra Linux 1.3 Смоленск

В нем есть Python 3.2 и некоторое количество библиотек.
Но в нем нет pyhon-библиотеки psycopg2.
И нужно эту библиотеку установить, чтобы заработали python3-скрипты, которые работают с PostgreSQL.

Проблема 1 - в том, что в Astra 1.3 нет pip, и я не могу сделать установки из выкачанного заранее whl-файла.

Проблема 2 - попытка сборки psycopg2 из исходников через команду

python3 setup.py build
...приводит к тому, что появляется ошибка на f-строках, так как они появились в Python 3.6, а в системе стоит Python 3.2.

Вопрос: как можно извратиться, и установить psycopg2 в Astra 1.3?

★★★★★

…приводит к тому, что появляется ошибка на f-строках, так как они появились в Python 3.6, а в системе стоит Python 3.2.

Взять версию, которая была во времена Python 3.2 пробовал?

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

Взять версию, которая была во времена Python 3.2 пробовал?

Я не пойму откуда ее взять, как найти.

Xintrea ★★★★★
() автор топика

Самое простое и очевидное решение - не ковырять системный питон, а собрать отдельно нужную тебе версию куда-нибудь в /usr/local или /opt

Но если хочется секаса, pip ставится отдельным официальным скриптом. Гугл в помощь. Доступ в интернет не нужен

Про совместимость с версисей питона - читаешь changelog и качаешь соответствующую версию пакета

Но, ещё раз, лучше собери отдельный, не ломай ОСь. Питон - важный компонент ОСи

router ★★★★★
()

Через pyenv ставишь последний питон, делаешь его основным.

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

Самое простое и очевидное решение - не ковырять системный питон

верно, а дальше чушь пошла. asdf-vm/pyenv

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

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

Я ее могу поставить через python3 setup.py install, но хотелось бы понять, как сделать deb-пакет, чтобы можно было проще устанавливать.

Надо просто положить в пакет полученный so-шник? Как узнать, в какую директорию он должен устанавливаться? Или этого недостаточно, нужно что-то сложное городить?

Если что, каталог build имеет следующее содержание:

-rw-r--r-- 1 user user  13531 Май 20 15:29 errorcodes.py
-rw-r--r-- 1 user user   7086 Май 20 15:29 extensions.py
-rw-r--r-- 1 user user  43411 Май 20 15:29 extras.py
-rw-r--r-- 1 user user   4904 Ноя  8  2018 __init__.py
-rw-r--r-- 1 user user   2874 Май 20 15:29 _ipaddress.py
-rw-r--r-- 1 user user   8013 Ноя  8  2018 _json.py
-rw-r--r-- 1 user user   8188 Май 20 15:29 pool.py
-rw-r--r-- 1 user user   3339 Ноя  8  2018 psycopg1.py
-rwxr-xr-x 1 user user 896907 Май 20 15:34 _psycopg.cpython-32mu.so
-rw-r--r-- 1 user user  17260 Май 20 15:29 _range.py
-rw-r--r-- 1 user user  13829 Май 20 15:29 sql.py
drwxr-xr-x 2 user user   4096 Май 20 15:29 tests
-rw-r--r-- 1 user user   4425 Ноя  8  2018 tz.py

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

В /usr/lib/python3.XX/site-packages:

❯ yay -Ql python-psycopg2
python-psycopg2 /usr/
python-psycopg2 /usr/lib/
python-psycopg2 /usr/lib/python3.12/
python-psycopg2 /usr/lib/python3.12/site-packages/
python-psycopg2 /usr/lib/python3.12/site-packages/psycopg2-2.9.9.dist-info/
python-psycopg2 /usr/lib/python3.12/site-packages/psycopg2-2.9.9.dist-info/LICENSE
python-psycopg2 /usr/lib/python3.12/site-packages/psycopg2-2.9.9.dist-info/METADATA
python-psycopg2 /usr/lib/python3.12/site-packages/psycopg2-2.9.9.dist-info/RECORD
python-psycopg2 /usr/lib/python3.12/site-packages/psycopg2-2.9.9.dist-info/WHEEL
python-psycopg2 /usr/lib/python3.12/site-packages/psycopg2-2.9.9.dist-info/top_level.txt
python-psycopg2 /usr/lib/python3.12/site-packages/psycopg2/
python-psycopg2 /usr/lib/python3.12/site-packages/psycopg2/__init__.py
python-psycopg2 /usr/lib/python3.12/site-packages/psycopg2/__pycache__/
python-psycopg2 /usr/lib/python3.12/site-packages/psycopg2/__pycache__/__init__.cpython-312.opt-1.pyc
python-psycopg2 /usr/lib/python3.12/site-packages/psycopg2/__pycache__/__init__.cpython-312.pyc
python-psycopg2 /usr/lib/python3.12/site-packages/psycopg2/__pycache__/_ipaddress.cpython-312.opt-1.pyc
python-psycopg2 /usr/lib/python3.12/site-packages/psycopg2/__pycache__/_ipaddress.cpython-312.pyc
python-psycopg2 /usr/lib/python3.12/site-packages/psycopg2/__pycache__/_json.cpython-312.opt-1.pyc
python-psycopg2 /usr/lib/python3.12/site-packages/psycopg2/__pycache__/_json.cpython-312.pyc
python-psycopg2 /usr/lib/python3.12/site-packages/psycopg2/__pycache__/_range.cpython-312.opt-1.pyc
python-psycopg2 /usr/lib/python3.12/site-packages/psycopg2/__pycache__/_range.cpython-312.pyc
python-psycopg2 /usr/lib/python3.12/site-packages/psycopg2/__pycache__/errorcodes.cpython-312.opt-1.pyc
python-psycopg2 /usr/lib/python3.12/site-packages/psycopg2/__pycache__/errorcodes.cpython-312.pyc
python-psycopg2 /usr/lib/python3.12/site-packages/psycopg2/__pycache__/errors.cpython-312.opt-1.pyc
python-psycopg2 /usr/lib/python3.12/site-packages/psycopg2/__pycache__/errors.cpython-312.pyc
python-psycopg2 /usr/lib/python3.12/site-packages/psycopg2/__pycache__/extensions.cpython-312.opt-1.pyc
python-psycopg2 /usr/lib/python3.12/site-packages/psycopg2/__pycache__/extensions.cpython-312.pyc
python-psycopg2 /usr/lib/python3.12/site-packages/psycopg2/__pycache__/extras.cpython-312.opt-1.pyc
python-psycopg2 /usr/lib/python3.12/site-packages/psycopg2/__pycache__/extras.cpython-312.pyc
python-psycopg2 /usr/lib/python3.12/site-packages/psycopg2/__pycache__/pool.cpython-312.opt-1.pyc
python-psycopg2 /usr/lib/python3.12/site-packages/psycopg2/__pycache__/pool.cpython-312.pyc
python-psycopg2 /usr/lib/python3.12/site-packages/psycopg2/__pycache__/sql.cpython-312.opt-1.pyc
python-psycopg2 /usr/lib/python3.12/site-packages/psycopg2/__pycache__/sql.cpython-312.pyc
python-psycopg2 /usr/lib/python3.12/site-packages/psycopg2/__pycache__/tz.cpython-312.opt-1.pyc
python-psycopg2 /usr/lib/python3.12/site-packages/psycopg2/__pycache__/tz.cpython-312.pyc
python-psycopg2 /usr/lib/python3.12/site-packages/psycopg2/_ipaddress.py
python-psycopg2 /usr/lib/python3.12/site-packages/psycopg2/_json.py
python-psycopg2 /usr/lib/python3.12/site-packages/psycopg2/_psycopg.cpython-312-x86_64-linux-gnu.so
python-psycopg2 /usr/lib/python3.12/site-packages/psycopg2/_range.py
python-psycopg2 /usr/lib/python3.12/site-packages/psycopg2/errorcodes.py
python-psycopg2 /usr/lib/python3.12/site-packages/psycopg2/errors.py
python-psycopg2 /usr/lib/python3.12/site-packages/psycopg2/extensions.py
python-psycopg2 /usr/lib/python3.12/site-packages/psycopg2/extras.py
python-psycopg2 /usr/lib/python3.12/site-packages/psycopg2/pool.py
python-psycopg2 /usr/lib/python3.12/site-packages/psycopg2/sql.py
python-psycopg2 /usr/lib/python3.12/site-packages/psycopg2/tz.py
rtxtxtrx
()
Ответ на: комментарий от Xintrea

Но тебя ждут веселые приключения от того, что ты решил все через жопу сделать вместо самого простого решения. Оно 50/50 будет работать, потому как в последних либах используются те же f-строки

rtxtxtrx
()

Смоленск

Он предназначен только для организаций, а значит - в техподдержку.

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

Я ее могу поставить через python3 setup.py install

Нет, не можешь. Наверняка у вас на нем сертифицированный софт стоит, если что-то привинтишь слева, сертификация слетит, а тебя взгреют.

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

ДИСТРИБУТИВ и ПРОГРАММЫ, включенные в состав ДИСТРИБУТИВА, распространяются в надежде, что они будут полезны, но без гарантии их пригодности для какой-либо конкретной цели. ООО «Базальт СПО» не несет ответственности за возможный ущерб, прямой или косвенный, понесенный в результате использования ДИСТРИБУТИВА и этих ПРОГРАММ.

Там даже на то что в дистр входит гарантии нет

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

Если ты не в курсе что такое Астра Линукс Смоленск и зачём её ставят - лучше не позорься и молчи, вместо того чтоб в очередной раз обижаться на заслуженные фейспалмы и искать в ответ мои комменты в поиске чтоб проклоунировать.

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

Ну я слеп уже. https://wiki.astralinux.ru/pages/viewpage.action?pageId=63802854 там тоже ничего про то что ну вот прям низя. Хотя это все порожняя тема. asdf/pyenv и точка, все кто иначе делают - не сварщики.

rtxtxtrx
()
Последнее исправление: rtxtxtrx (всего исправлений: 1)

Астра тем более Смоленск нужна там где очень важная безопасность и сертификаты от ФСТЭК. Там не должен стоять питон и постгри.

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

Нет, не можешь. Наверняка у вас на нем сертифицированный софт стоит, если что-то привинтишь слева, сертификация слетит, а тебя взгреют.

Могу, потому что любая организация может сертифицировать, если готова платить деньги за сертификацию. Необходимо только предоставить исходники (именно поэтому я и ставлю из исходников), правда к исходникам предъявляются требования, и поэтому надо, например, иметь документацию на русском, а в исходниках обеспечить описание на русском каждого метода и каждого свойства.

Прохождение сертификации - обычное дело, а сертификатчики это те еще клоуны. Присылают протоколы проверки, в которых указывается что проверка происходит древним ПО, на которое три года назад кончилась лицензия. И им все норм.

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

Оно рядом со мной сидит.

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

Там не должен стоять питон и постгри.

PostgreSQL там мало того, что есть - он там ещё и с мандатным доступом, прикрученным сверху обычного ПГ.

Теоретически, если БД разрабатывалась специально под Астру, со всеми её плюшками - не факт, что она станет правильно разговаривать с популярными общенародными инструментами.

Потому в 2015м году и плясал от «что там в Астре есть по умолчанию», чтоб пилить приложение уже с тем набором инструментов, который там есть.

Toxo2 ★★★★
()

Судя по источникам из интернета, 1.3 основана на Debian Wheezy, причём одном из первых Wheezy (так-то и куда более новый 1.5 тоже Wheezy-based), поэтому я бы покопался именно в его репозиториях.

hobbit ★★★★★
()

Astra Linux 1.3 Смоленск ищешь какому debian она соответствует, какой версии она была в этой версии девиан. идёшь сюда https://archive.debian.org/debian/pool/main/p/psycopg2/ и качаешь нужной версии и ставишь.

всё про всё 10 минут.

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