metaclass: (Default)
[personal profile] metaclass
Вот ощутил, так сказать, на собственной шкуре чо такое разработка под Линукс.

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

Проект состоит из аддона к rdesktop, который вытаскивает виртуальный канал с виндового терминального сервера в виде двух fifo и работающей с этими fifo проги на питоне.
У авторов вся последовательность сборки и запуска задокументирована. Там множество вуду-действий, типа "настроить правила для udev, чтобы пользователь мог видеть подключаемые устройства", но б-г с ним.

Значит, rdesktop собирается нормально. Зачем они его собирают - не знаю, но так написано. Аддон к rdesktop собирается тоже нормально. fifo делаются вручную. Затем надо запустить питоновую прогу, для чего они делают EXPORT PYTHONPATH=$PWD/src:$PYTHONPATH и затем запускают питон с именем проги. Этот этап уже не работает. Если запустить питон и сделать import sys и print sys.path - в путях нужный путь есть. strace тем не менее показывает что скрипт питон открывает без путей вообще.

Ладно, думаю, разберемся позже, запускаю с полным путем. И тут начинается. Во первых, требуется google.protobuf, в инструкции не упомянутый. Качаем. Собираем бинарник. Запускаем питоном setup.py, вроде инсталлируется. Запускаем. Начинает требовать питоновые модули, упомянутые в инструкции.
Первый модуль python-pyaudio. В репозитории нет. Ищем гуглом. Есть deb. Качаем, ставим.
Второй модуль python-pyinotify. В репозитории есть. Ставим.
Третий модуль python-pyspeex. Нету. Ищем. Качаем исходники. Пытаемся ставить. Требует pyrex (какой-то модуль для интеграции C и Python). Ищем в репозитории. Есть. Ставим. Тянет за собой питон 2.4 (текущий используемый - 2.5.2). Запускаем опять билд pyspeex - ебубух, "cannot assign float to short" и получается на выходе только файл speex.c с содержимым типа "#error не используйте этот файл, в нем жабы черви и змеи"
В общем, уже как бэ и поздно, и мозг уже не соображает - потом буду разбираться дальше, или же напишу авторам, чтобы сами собирали свой шрот и не компостировали мозг.

В итоге мы имеем несколько часов потраченных на билд только одного мелкого куска системы.
И пример к чему приводит любимая методика "слепить из <говнаповторно использовать наработки сообщества".

Кстати, прототип этой хрени, без питонов, на чистом С, собрался и условно "заработал". Но судя по исходному коду, авторам надо безжалостно отрывать жопу (полное отсутствие обработки ошибок). То что это прототип - не оправдание, нормальный программист физически не может писать код, не обрабатывающий все мыслимые и немыслимые ошибки.

Date: 2009-10-20 08:57 pm (UTC)
From: [identity profile] dizel-by.livejournal.com
Так что же, если в одной булочке попалась жаба, значит хлебозавод принципиально не может выпускать качественную продукцию? :)

Date: 2009-10-20 09:00 pm (UTC)
From: [identity profile] metaclass.livejournal.com
Ну, вообще да. В нормальных условиях жаба туда попасть просто не может :)

Date: 2009-10-20 08:57 pm (UTC)
From: [identity profile] fas-tm.livejournal.com
Это нормально :) Это действительно так.
Но Linux сам по себе ни при чем. К стенке ставить надо разработчиков которые ваяют это говнецо. Linux можно упрекнуть только в том что он поощряет и допускает такие действия жопоруких разработчиков.

Date: 2009-10-20 09:01 pm (UTC)
From: [identity profile] metaclass.livejournal.com
Я так подозреваю, это еще не самое страшное. Тут хотя бы сборка документирована и хоть что-то собирается :)

Date: 2009-10-20 09:12 pm (UTC)
From: [identity profile] fas-tm.livejournal.com
Страшно это когда совсем редкий кровавый энтерпрайз. Это когда драйвера для LTO приводов и чейнджера ленточной библиотеки(шкаф размером как два био-клозета) и FC/SCSI контроллера есть только в бинарном виде, которые работают только на определенной версии ядра и определенным образом пропатченным... и найденное и пропатченое ядро после 2-х суток без сна при перезагрузки падает в корку потому что ничего не знает про новое железо типа HP DL380G5.
P.S. Личный опыт :)

Date: 2009-10-20 09:06 pm (UTC)
From: [identity profile] sheep2k.livejournal.com
Под винды тоже полно софта, который хрен соберёшь без плясок, даже с помошью прилагающихся файлов проекта под студию, например. Даже захардкоженые пути к библиотекам и инклюдам в проекте - не самое страшное.

Date: 2009-10-20 09:18 pm (UTC)
From: [identity profile] fas-tm.livejournal.com
Так я не отрицаю. Поэтому написал что к самому Linux как бэ претензий нет.
Претензии к методологии разработки и вменяемому инженерному мышлению.
Я лично порвал бы в клочья поставщика если рядом с серваком нашел бумажку типа:
- Выточить правую направляющую рельсу из железнодорожной шпалы
- Отверстие с недостающим индикатором залепить жвачкой
- При работе сервера обмахивать веерами так как для установки охлаждения у нас нет лицензии.
- etc.

(no subject)

From: [identity profile] sheep2k.livejournal.com - Date: 2009-10-21 06:34 am (UTC) - Expand

(no subject)

From: [identity profile] vp.livejournal.com - Date: 2009-10-21 06:38 am (UTC) - Expand

(no subject)

From: [identity profile] fas-tm.livejournal.com - Date: 2009-10-21 07:26 am (UTC) - Expand

Date: 2009-10-20 10:33 pm (UTC)
From: [identity profile] axiger.livejournal.com
+1 Вот буквально следующий пост в ленте - те же проблемы под виндой:
http://voidex.livejournal.com/31718.html

Date: 2009-10-20 09:00 pm (UTC)
From: [identity profile] vp.livejournal.com
Вот пока эта мания "повторно использовать наработки сообщества" любыми силами вместо того, чтоб писать нормально самим, не закончится - вот такое вуду и будет.
Подписался на комменты. Щас придут и скажут, что "это все нормально" или "вам надо было билдить под генту", что-нибудь в таком духе :)

Date: 2009-10-21 03:50 am (UTC)
From: [identity profile] beliashou.livejournal.com
Ребе! Я знаю что надо делать! Надо заводить не всякий софт, найденный под линукс, а КОШЕРНЫЙ. Если кто-то уже попробовал и убедился, что софт пользует кошерные библиотеки, не червив, не зажаблен, собирается и не тянет за собой всякие гойские поделки, то такой софт нужно рекомендовать и юзать. А остальное - отметать со всяческим негодованием.

(no subject)

From: [identity profile] vp.livejournal.com - Date: 2009-10-21 04:56 am (UTC) - Expand

Date: 2009-10-20 09:13 pm (UTC)
From: [identity profile] kiryl.livejournal.com
Начать нужно было с того, что посмотреть в код. Обычно несколько минут хватает, что бы оценить есть ли там черви и жабы. Качественный проект виден сразу. А потом уже и решать стоит ли с ним связываться.

Date: 2009-10-20 09:16 pm (UTC)
From: [identity profile] metaclass.livejournal.com
Ну, вопрос "стоит ли связываться" не стоял. Вопрос стоит "какую часть жопы оторвать авторам для того чтобы это все заработало". :)

(no subject)

From: [identity profile] kiryl.livejournal.com - Date: 2009-10-20 09:18 pm (UTC) - Expand

(no subject)

From: [identity profile] vp.livejournal.com - Date: 2009-10-21 04:52 am (UTC) - Expand

(no subject)

From: [identity profile] kiryl.livejournal.com - Date: 2009-10-21 04:55 am (UTC) - Expand

(no subject)

From: [identity profile] vp.livejournal.com - Date: 2009-10-21 04:57 am (UTC) - Expand

(no subject)

From: [identity profile] kiryl.livejournal.com - Date: 2009-10-21 05:18 am (UTC) - Expand

(no subject)

From: [identity profile] spushnyakov.livejournal.com - Date: 2009-10-21 06:21 am (UTC) - Expand

(no subject)

From: [identity profile] metaclass.livejournal.com - Date: 2009-10-21 07:57 am (UTC) - Expand

(no subject)

From: [identity profile] vp.livejournal.com - Date: 2009-10-21 06:32 am (UTC) - Expand

(no subject)

From: [identity profile] sheep2k.livejournal.com - Date: 2009-10-21 09:36 am (UTC) - Expand

Date: 2009-10-20 09:23 pm (UTC)
From: [identity profile] rmihael.livejournal.com
для установки питоновских модулей в целях прикладного программизма удобнее использовать easy_install
запакетированные модули -- это скорее для удовлетворения зависимостей прочих пакетов, а не для разработки.

Date: 2009-10-20 10:17 pm (UTC)
From: [identity profile] komarov.livejournal.com
ну вот опять же - это кусочек сокровенного знания, который автору записи стал доступен только после многочасового секса с жабой в позе червя

(no subject)

From: [identity profile] rmihael.livejournal.com - Date: 2009-10-20 11:13 pm (UTC) - Expand

Date: 2009-10-21 02:34 am (UTC)
From: [identity profile] dmzlj.livejournal.com
А линукс-то причем? Типичный package hell. На винде было бы также, если не хуже.

Date: 2009-10-21 05:26 am (UTC)
From: [identity profile] metaclass.livejournal.com
На винде это было бы одним стандалоне-архивом, с 95% вероятностью запуска из отдельной папки, не задевая остальной системы. Причина: в винде нет религии "использовать повторно" и нет наивной веры в то, что на системе что-то есть из того, что есть у разработчика. Поэтому в норме обычно выкладывается все необходимое для сборки и запуска.

(no subject)

From: [identity profile] dmzlj.livejournal.com - Date: 2009-10-21 05:40 am (UTC) - Expand

(no subject)

From: [identity profile] dmzlj.livejournal.com - Date: 2009-10-21 05:40 am (UTC) - Expand

(no subject)

From: [identity profile] levgem.livejournal.com - Date: 2009-10-21 01:20 pm (UTC) - Expand

Date: 2009-10-21 03:45 am (UTC)
From: [identity profile] beliashou.livejournal.com
Ребе, мне кажется, что произойдёт одно из двух: либо будет написан рано или поздно некий менеджер установки приложений так, что будет моветоном писать так, что бы он автоматом не мог поднять этого всего-всего-всего. Или этот раздел спорта останется за теми, кому нужен более серьёзный наркотик, чем Lines и прочие пасьянсы. Не знаю почему, но меня вот так по инструкциям ставить, искать, доставлять, собирать и всё такое - НЕ ШТЫРИТ!

Date: 2009-10-21 04:55 am (UTC)
From: [identity profile] vp.livejournal.com
Ребе, вы не поняли.
Есть конкретная задача.
Есть целевая ОС.
Под эту ОС на религиозном уровне запрещено делать что-то с нуля и новое, но всячески поощеряется и возведено в стандарт повторное использование тонн говна в разных немыслимых комбинациях. Вместо того чтобы сесть и нормально и культурно это разработать, начинаются питоны, жабы, и т.п. ересь которая тут ни под бок ни под голову не нужна.

Re: Reply to your comment...

From: [identity profile] beliashou.livejournal.com - Date: 2009-10-21 05:32 am (UTC) - Expand

(no subject)

From: [identity profile] nicka-startcev.livejournal.com - Date: 2009-10-21 05:36 am (UTC) - Expand

(no subject)

From: [identity profile] metaclass.livejournal.com - Date: 2009-10-21 05:50 am (UTC) - Expand

(no subject)

From: [identity profile] kiryl.livejournal.com - Date: 2009-10-21 06:04 am (UTC) - Expand

(no subject)

From: [identity profile] vp.livejournal.com - Date: 2009-10-21 06:36 am (UTC) - Expand

(no subject)

From: [identity profile] vp.livejournal.com - Date: 2009-10-21 06:35 am (UTC) - Expand

(no subject)

From: [identity profile] g-rub.livejournal.com - Date: 2009-10-21 07:45 am (UTC) - Expand

Date: 2009-10-21 05:43 am (UTC)
From: [identity profile] dmzlj.livejournal.com
вообще, задача поставщика сделать так, что бы пакет везде собирался путем

./configure
make


или лучше
make


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

Re: Reply to your comment...

From: [identity profile] beliashou.livejournal.com - Date: 2009-10-21 08:43 am (UTC) - Expand

Ой, ребе, и не гойворите!

Date: 2009-10-21 06:09 am (UTC)
From: [identity profile] a-sure.livejournal.com

Тока что запустил некий супер-пупер софт для медицины. Наши тестят.
Он ащета на жабе писяный, но оторвать девелоперам хочется много что:
- зачем-то покоцали сам jboss, и ставить нужно только с их "редакцией"
- генерят ключи для LDAP так, что без ручного ввода пароля ldap (SERVCE !!!!) не стартует, т.е. всякие heartbeat и прочие HA фенечки ушли лесом
- процесс установки такой же - "танцы по красиво разложенным граблям"


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

Date: 2009-10-21 07:21 am (UTC)
From: [identity profile] avr-forever.livejournal.com
ребе, это всё не ляликс, это пытонь виноват
у меня считанные программы на питоне работали сразу без пинков. то оно не с тем питоном запустится (в системе уже давно default 2.5, а оно ожидает 2.4, а в шебанге прописано просто /usr/bin/python), то запустится, но не заимпортирует модуль (да, пути все есть!), то упадёт где-то на середине
а всё от того, что народ прототипирует на питоне, а потом как к прототипу к своей программе и относится. не отлавливают баги должным образом, не обрабатывают исключения и тэдэ.

Date: 2009-10-21 07:43 am (UTC)
From: [identity profile] g-rub.livejournal.com
Ребе, описанная ситуация -- откровенно кривая халтура, которую разработчики впихнули заказчику.

Про то, что все это якобы "поощряется архитектурой ОС" -- исключительно домыслы.

Если нужно иметь кучки заведомого говна в изолированном окружении, не ломающие систему, то нужно их и разрабатывать так, чтобы все складывалось в /opt/govnosoft, и все библиотеки смотрело и брало исключительно оттуда. Если говно сложено правильно и в полном наборе, то Linux даже позволит запустить его в chroot jail, чтоб уж точно ничего не поломалось.

Тут вся проблема в том, что разработчики предпочли пойти путем, которым ходить откровенно не умеют. И убедили заказчика в собственной компетенции.

Архитектура не виновата.

Date: 2009-10-21 08:02 am (UTC)
From: [identity profile] metaclass.livejournal.com
Ясно, придется отрывать им жопу и итеративно вправлять мозги.

(no subject)

From: [identity profile] g-rub.livejournal.com - Date: 2009-10-21 08:42 am (UTC) - Expand

(no subject)

From: [identity profile] theiced.livejournal.com - Date: 2009-10-21 10:39 am (UTC) - Expand

(no subject)

From: [identity profile] metaclass.livejournal.com - Date: 2009-10-21 10:42 am (UTC) - Expand

(no subject)

From: [identity profile] theiced.livejournal.com - Date: 2009-10-21 10:53 am (UTC) - Expand

Date: 2009-10-21 10:37 am (UTC)
From: [identity profile] theiced.livejournal.com
Ребе, я вам уже 964564579 раз говорил - если вы бултыхаетесь в ванной с говном (ака дебиан) - то это ваши проблемы. Дебиан с большой натяжкой пригоден исключительно для говносерверов с опачем и похапэ (да и то не более одного сайта). В генте все эти либы в _основном_ дереве.

Date: 2009-10-21 06:12 pm (UTC)
From: [identity profile] kkirsanov.livejournal.com
Я трижды, за последние 4 года(успел 2 компа сменить), ставил себе генту.

Каждый раз это заканчивалось тем, что после очередного emerge --update --deep world иксы влились мистическим образом переставали работать.


Gentoo Ten LiveDVD 10 у меня даже под VBox`ом последним нее смог нормально загрузится - KDE какую-то ересь выписывает и падает. За то с музыкой.

(no subject)

From: [identity profile] permea-kra.livejournal.com - Date: 2009-10-21 07:25 pm (UTC) - Expand

(no subject)

From: [identity profile] kkirsanov.livejournal.com - Date: 2009-10-21 10:14 pm (UTC) - Expand

Profile

metaclass: (Default)
metaclass

April 2017

S M T W T F S
      1
2345678
9101112 131415
16171819202122
23242526272829
30      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Sep. 2nd, 2025 12:43 am
Powered by Dreamwidth Studios