python 3.5.1 установка на qnap

Используем пакеты, расширяющие возможности оборудования
baz-e
Сообщения: 7
Зарегистрирован: 23 мар 2016, 15:37

Сообщение baz-e » 15 апр 2016, 12:49

Хочу поделится полученным опытом, может кому пригодится. А может это не опыт, а глупость и мне объяснят что можно все сделать проще и я просто не разбираюсь в теме. Первые две попытки установить питон не связаны с Entware-ng, это как бы предыстория. Третья и четвертая - смесь установки из репозитария Entware-ng, из самостоятельно собранных ipk и из нативно скомпилировнных исходников.
Цель: есть QNAP TS-459 с прошивкой 4.2.0 Build 20160311. Нужен python3 + pip + pyvenv, после установки «песочницы» надо в нее установить поддержку mysql + lxml + django ну и кучку по мелочи.
Мои навыки: на линукс-системах что-то могу делать, но считаю что линукса не знаю. С компиляцией из исходников столкнулась первый раз, про кросс-компиляцию раньше даже не слышала
Попытка № 1 (прошивка была постарее и в качестве package manager-а использовался Optware ):
python устанавила из веб-интерфейса App Center (там 3.5.0). Необходимые для lxml библиотеки libxml2 и libxslt устанавила менеджером Optware. Результат: lxml не устанавливается, ругается что нет libxml2 и libxslt.
Продолжение этой попытки: установка libxml2 и libxslt из исходников успеха не принесла. Также как и компиляция lxml из исходников. Гугление привело к такому результату: вроде как для версии lxml 3.* требуется последняя версия libxml2 и либо python 2.7.11 либо python 3.5.1. Ну а python 3.5.1 через package manager недоступен.
Попытка № 2 (система после предыдущих эксперементов):
Компиляция python 3.5.1 из исходников. Нет результата, т.к. проблемы с библиотекой ssl, а без нее не ставится pip.
Попытка № 3: (ОС переустановлена, в качестве package manager-а используется Entware-ng, скачаны include-файлы из дев-пакетов http://pkg.entware.net/binaries/x86-64/ ... ude.tar.gz)
С помощью Entware-ng установлено все необходимое для нативной компиляции.
Настроена среда кросс-компиляции на убунте. После плясок с исправлением путей с usr на opt таки получилось собрать 25 ipk-файлов (думала не выйдет, неделю мучалась) и все они успешно установились на qnap-е. Результат: pip не работает из-за проблем с pyexpat.
Нативная компиляция python 3.5.1 из исходников: по-прежнему нет модуля _ssl, ну и как следствие pip-а. Хотя python3-openssl_3.5.1-3_x86-64.ipk был же успешно установлен, не понимаю почему проблема! Ошибка из лога:

Код: Выделить всё

/opt/bin/ld: /opt/lib/libcrypto.a(o_names.o): relocation R_X86_64_32 against `.text' can not be used when making a shared object; recompile with -fPIC  
/opt/lib/libcrypto.a: error adding symbols: Bad value

Пробовала

Код: Выделить всё

 export CXXFLAGS="$CXXFLAGS -fPIC"

но не помогло.

baz-e
Сообщения: 7
Зарегистрирован: 23 мар 2016, 15:37

Сообщение baz-e » 15 апр 2016, 12:55

Попытка № 4 (ОС опять переустановлена)
Повторение попытки № 3 только с более детальным анализом что получилось после каждого шага.
Шаг 1 – установка пакетов для нативной компиляции и закачка include из dev-библиотек.
Шаг 2 – установка собранных ранее ipk для питона в количестве 25 штук. Проверка: pip не работает из-за pyexpat.
Шаг 3 – первая попытка нативной компиляции питона: нет ssl. Установка из исходников openssl-1.0.2g (чтобы откомпилировать пришлось еще ставить perl + кучка модулей к нему). Вторая попытка компиляции питона: ssl появился, но нет pyexpat, лог

Код: Выделить всё

/opt/bin/ld: skipping incompatible /usr/lib/libexpat.so when searching for -lexpat

В каком-то смысле это успех, т.к. именно из-за pyexpat не работал pip. Пакет libexpat был установлен, переустановка не помогла. Смущает что проверяется usr, хотя в opt файлы лежат, поэтому и пробовала переустанавливать (причем сначала opkg update) – но третья попытка компиляции питона не принесла результата. Тогда делаю кросс-компиляцию libexpat, устанавливаю полученные ipk – и результат положительный: четвертая попытка нативной компиляции питона собрала и ssl и expat. Нет нескольких других модулей: _bz2, _lzma, _tkinter, а модули _gdbm и _sqlite3 не строятся тоже из-за skipping incompatible so-файлов, и эту проблему мне не удалось решить, но пока я не знаю понадобятся они мне или нет и решила пусть пока без них.
Шаг 4: установка откомпилированного нативно питона и проверка: pip работает, но lxml не устанавливается. Не могу найти некоторые файлы, которые вроде как должны быть (xslt-config например). Делаю кросс-компиляцию libxml2 и libxslt и переустанавливаю– результат такой же. Делаю нативную компиляцию и устанавливаю снова. Файлы появились! И в питоновской песочнице удалось установить lxml, ну и остальные необходимые модули!

baz-e
Сообщения: 7
Зарегистрирован: 23 мар 2016, 15:37

Сообщение baz-e » 15 апр 2016, 13:01

Сейчас собираю в скрипт все проделанные действия и буду еще раз обнулять систему и разворачивать заново – чтобы не было ненужного мусора и ради отладки этого скрипта (фиг я повторю эти же действия например год спустя), возилась со всем этим больше месяца и хочу сохранить результат. Немного сомневалась надо ли ставить 25 питоновских ipk, если все равно поверх этого устанавливаю питон из исходников нативно. Решила что надо, т.к. у питона не нашла make uninstall, а если я ставила через opkg – то удалить можно будет им же (вроде как чисто удалилось… хотя может я ошибаюсь - я ж линукса толком не знаю)
Скрипт могу выложить, если кому интересно. Лично мне (с моими минимальными знаниями) просто описания процесса было бы недостаточно, я была бы безумно рада скрипту, который можно разобрать и переделать под себя, но наверно тем кто в теме проще написать свое, чем изучать и править чужое.

Аватара пользователя
Zyxmon
Администратор
Сообщения: 1232
Зарегистрирован: 09 авг 2015, 14:33

Сообщение Zyxmon » 15 апр 2016, 13:04

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

baz-e
Сообщения: 7
Зарегистрирован: 23 мар 2016, 15:37

Сообщение baz-e » 15 апр 2016, 14:47

Zyxmon писал(а):Источник цитаты Не все можно собрать нативно. Лучше освойте кросс-компиляцию.

Да вообще не хочется заморачиваться с нативной. Если бы получилось все через кросс-компиляцию - я была бы счастлива: откомпилировала один раз, сохранила ipk, и потом хоть запереустанавливайся сколько хочешь раз. А с нативной - сначала все подготовь, потом вспомни (или найди если сохранено) какие параметры, а потом еще и не переустановить тк uninstall нету... Но вот libxml2 и libxslt не докладывает нужных файлов... я правда сразу пошла нативно компилировать, а надо конечно почитать в этих фидах makefile - может что увижу... Писать mk для кросс-компиляции я еще не созрела, но вот читать и что-то чуть-чуть менять вроде как немного умею, так что собираюсь посмотреть.
Мучаюсь вопросом, может посоветуете. из репозитария файл libexpat.so пришел не тот, после кросс-компиляции поменялся и стал правильным. Значит ли это, что на мое железо лучше тогда сначала поставить все мои ipk (мои - в смысле что я их сама собрала, но фиды не меняла, и сейчас у меня собрано только то, что не заработало после установки из репозитария), а потом уже устанавливать чего не хватает из репозитария. Или лучше все возможные перекомпилить и ставить только из своих ipk? То бишь использовать только среду компиляции от Entware-ng, и не использовать репозитарий. А то проблемы которые вылезли с питоном - пока не начнешь использовать то и не поймаешь, сказано же было что все установилось и все ок, а то что so-файлы не те: без попыток нативной компиляции я бы вообще не поняла бы...

Аватара пользователя
Zyxmon
Администратор
Сообщения: 1232
Зарегистрирован: 09 авг 2015, 14:33

Сообщение Zyxmon » 15 апр 2016, 14:54

baz-e писал(а):Источник цитаты Писать mk для кросс-компиляции я еще не созрела, но вот читать и что-то чуть-чуть менять вроде как немного умею, так что собираюсь посмотреть.

Для python3 есть готовый Makefile из openwrt - https://github.com/Entware-ng/entware-p ... ng/python3
Нужно немного "отрихтовать", можно взять за основу соседний второй питон.
baz-e писал(а):Источник цитаты что не заработало после установки из репозитария

Если что не работает - нужно об этом сообщать. За работу пакетов из репы с собранными самостоятельно (не важно нативно или кросс) бинарниками мы не отвечаем.

baz-e
Сообщения: 7
Зарегистрирован: 23 мар 2016, 15:37

Сообщение baz-e » 15 апр 2016, 15:20

Zyxmon писал(а):Источник цитаты Нужно немного "отрихтовать", можно взять за основу соседний второй питон

Ну да, я оттуда и получила свои 25 штук ipk. Правда для меня "немного" вылезло в неделю, рихтовать надо было не один файл, а + все .mk, и не везде было для меня тривиально, легко только opt вместо usr вставить, а вот остальное... Но это мой первый опыт с Makefile-ми, так что после удачи я даже удивилась...
Zyxmon писал(а):Источник цитаты Если что не работает - нужно об этом сообщать

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

Аватара пользователя
LordMerlin
Сообщения: 91
Зарегистрирован: 22 авг 2015, 14:31
Откуда: Третья планета от Солнца

Сообщение LordMerlin » 16 апр 2016, 09:57

:oops: Что могу сказать, брависсимо мадам. Тут 80% мужчин даже таких слов не знает, а вы знаете и делаете.. :give_rose:

baz-e
Сообщения: 7
Зарегистрирован: 23 мар 2016, 15:37

Сообщение baz-e » 16 апр 2016, 13:56

LordMerlin писал(а):Источник цитаты Тут 80% мужчин даже таких слов не знает, а вы знаете и делаете..

:oops:
большинству "таких слов" меня научил муж. Токо вот я результата добивалась месяц, а он забил на проблему почти сразу. Ну я же заняла единственную в доме машинку с убунтой, а на виртуальной у него чего-то кросс-компиляция не пошла... а с нативной он считает глупо заморачиваться, меня ругал что я "смешиваю" ... плюс он работает,а я вроде как дома сижу и развлекаюсь: захотела приложение на питоне написать и на хоум-сервере развернуть - вот и добивайся результата! Если бы это не дома, а на работе понадобилось - наверно легче было бы, одной ковыряться в незнакомой сфере - тяжко.
Вообще-то мы почти созрели перепрошить наш qnap на полноценный дебиан , но вот сейчас я уже против. Имея Entware можно справиться с недостатками "урезанной" системы. СПАСИБО за ВАШ ТРУД, он очень ценен!

uncle-z00m
Сообщения: 23
Зарегистрирован: 23 апр 2017, 23:34

Сообщение uncle-z00m » 28 май 2017, 01:35

приветствую всех, кто заглянул в эту тему.
Может быть у кого-то остался пакет python3-lxml для armv5te (для QNAP-412).
нативно скомпилировать не получается,
кросс-компиляция тоже не даётся

а без него не запустится несчастный скрипт SOPDS на кунапе, такие дела.


Вернуться в «Entware/Qnapware/Optware/Zyxware - обсуждаем репозитории пакетов»

Кто сейчас на конференции

Всего 1 посетитель :: 0 зарегистрированных, 0 скрытых и 1 гость (основано на активности пользователей за последние 5 минут)
Больше всего посетителей (121) здесь было 18 май 2016, 18:19

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость