Руководства, Инструкции, Бланки

Остек Установка Сборки Пакетов Revolino Руководство

Рейтинг: 4.3/5.0 (1845 проголосовавших)

Категория: Руководства

Описание

Сборка программы из исходников, установка, сборка пакета

UNIXHOME.ORG.UA Руководство → Сборка программы из исходников, установка, сборка пакета

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

Существует много способов сборки: в некоторых случаях достаточно запустить в терминале скрипт, который автоматически соберёт программу, в других используются стандартные утилиты, а в особо тяжёлых приходится править исходники. Мы рассмотрим два наиболее распространённых варианта: configure/make и scons. Также, можно собрать deb -пакет из исходников с помощью checkinstall .

configure/make
scons
checkinstall

Но сначала поставим мета-пакет с необходимыми программами:

Итак, установим новую версию текстового редактора leafpad. Для этого скачиваем архив с сайта: savannah.nongnu.org/download/leafpad/leafpad-0.8.16.tar.gz. Если установлена старая версия, её лучше удалить.

1. В терминале заходим в папку с архивом (у меня он находится в

/software/source/) и распаковываем его:


Или можно воспользоваться графическим менеджером архивов.

Открываем файл README:

Как правило, информации из него достаточно, но иногда приходится заходить на сайт программы.

В README ищем раздел «Installation» или что-то подобное. Прежде всего там написаны зависимости, необходимые для сборки. В данном случае, это библиотеки GTK+-2.x.x и libgnomeprintui-2.2 (причём, нам нужны версии для разработки, т.е. с суффиксом -dev). В Ubuntu это пакеты libgtk2.0-dev и libgnomeprintui2.2-dev. Устанавливаем их через менеджер пакетов или с помощью терминала:

3. Дальше, следуя инструкциям README-файла, выполняем скрипт настройки программы под нашу систему (должна быть открыта папка с исходниками):

Если надо установить программу в какую-то определённую папку, то выполняем configure с параметром --prefix=<путь к папке>:

Так как /usr/local является папкой установки по умолчанию, то эти две команды равнозначны.

4. Смотрим лог выполнения, и, если никаких ошибок нет, собираем программу (если она большая, этот процесс может занять много времени):


5. Устанавливаем программу (может потребоваться ввод пароля):

6. Запускаем установленный редактор из меню «Приложения -> Стандартные» или командой:

7. А теперь удалим программу (в терминале по-прежнему должна быть открыта папка с исходниками):

К сожалению, иногда такое автоматическое удаление невозможно, и приходится убирать программу вручную. Это можно решить созданием deb-пакета, но о нём чуть позже.

Ещё один часто встречающийся способ сборки — это scons. Для примера возьмём исходники программы LinuxDC++ 1.0.3: launchpad.net/linuxdcpp/1.0/1.0.3/+download/linuxdcpp-1.0.3.tar.bz2.

1. Заходим в папку с исходниками и распаковываем их.

2. Открываем файл Readme.txt:

Здесь нам нужные следующие зависимости:


Ищем и устанавливаем соответствующие пакеты с помощью менеджера или вводим следующую команду в терминале:

Увы, не всегда название пакета в дистрибутиве совпадает с его названием в readme: например, библиотека gthread-2.0 содержится в пакете libglib2.0-dev. Что, впрочем, можно легко узнать с помощью поиска в интернете по запросу: «Ubuntu gthread-2.0».

3. Теперь собираем программу (выполнять настройку отдельно в случае с scons не надо):

Или, если надо указать папку для установки, добавляем параметр PREFIX=<путь к папке>, как написано в Readme.txt:

4. Устанавливаем программу:

6. Теперь удалим её из системы:

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

1. Установим её из репозитория:

2. Теперь после сборки редактора leafpad вместо:

Параметр -D здесь означает, что мы хотим создать deb-пакет.

3. На все вопросы можно просто нажимать Enter, тогда будет выбираться ответ по умолчанию.

При желании вводим описание пакета, но это необязательно. Дальше проверяем и, если надо, изменяем параметры сборки пакета, после чего нажимаем Enter.

Небольшое пояснение к параметрам в checkinstall:

Сборщик пакета — тут можно указать своё имя.

2 — Name, 3 — Version

Название и версия пакета, которые будет показываться в базе данных.

Зависимости пакета. Здесь должны быть простые версии пакетов, а не -dev. В случае с leafpad, вписываем сюда значение:

4. Программа уже установлена, и теперь у нас есть deb-пакет.

Так как он создан под рутом, поменяем владельца (надо прописать имя и группу пользователя, под которым вы работаете):

5. Теперь программу можно удалить гораздо проще:

А если потребуется снова её установить, то заходим в папку с пакетом и выполняем:

6. Аналогично происходит сборка пакета и для scons. Только выполняется она командой:

А в зависимостях нужно будет прописать также и требования к версиям:

И последнее, не стоит выкладывать в сеть пакеты, собранные с помощью checkinstall, так как они далеки от стандартов, и, возможно, на другом компьютере программа вообще не запустится. Они нужны лишь для удобства установки ПО на отдельно взятой машине.

В тему

Видео

Другие статьи

Сборка бумажных пакетов – МКК2006

Сборка бумажных пакетов

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

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

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

Действующие расценки приведены в таблице:

Стоимость сборки бумажных пакетов

Если Вы хотите напечатать листы под бумажные пакеты сами, то нужно сделать следующее.

  1. До печати пакета получите у нас контуры штампа и наложить правильно Ваш макет на контур штампа.
  2. Вы привозите нам листы, и мы можем заламинировать пленкой 25 мкр. глянцевой или 30 мкр. матовой.
  3. Для сборки пакета мы вырубаем листы Вашим или нашим штампом, добившись качественной биговки.
  4. Нарезаем картон на подручники и донышки (всега есть в наличии).
  5. Собираем боковину пакета на усиленный двусторонний скотч, а дно пакета на термоклей - в наличие трех видов. Гарантия от расклеивания 1 год.
  6. Сверлим дырочки под установку Люверсов 5,5 мм или просто под шнурки. Устанавливаем люверсы диаметром 5,5 мм. Люверсы ставят для усиления прочности пакета и предохранения от вылетания узелка из просверленной дырочки. Желательно ставить при нагрузке более 3 кг.
  7. Всегда упаковываем готовые пакеты в гофрокоробки. Стоимость коробки 20 рублей. Помещается от 30 до 400 пакетов размером от маленьких с листа А4 до - до больших с двух листов А1.
  8. За дополнительные деньги мы можем нанять в транспортной компании машину и доставить Ваш тираж. В октябре - декабре поток заказов увеличивается в 6-10 раз и мы не успеваем организовывать доставку. Просим Вас забирать своим транспортом при наличии доверенности или печати.
  9. На всех коробках карандашиком в углу написаны фамилии сборщиц пакетов, лежащих в этой коробке. Если будет брак: Вы звоните нам и называете фамилии написанные на коробке в которой Вы нашли брак и мы увольняем этих людей и штрафуем их на сумму в 50 раз превышающую стоимость этих пакетов.
  10. Вам или возвращаем деньги за бракованные пакеты или перепечатываем. (сначала брак нужно привести к нам ) такие жесткие меры привели к тому, что в нашей компании брака нет совсем.

До 1 октября мы готовы собирать Вам пакеты бумажные по низким ценам:
Тиражи до 3 000 пакетов собираем по ценам в табличке.
Тиражи от 3 000-10 000 пак.
Минус 1 руб. от цены в табличке.
Тиражи более 10 тыс. пакетов рассчитываются индивидуально исходя из сроков и параметров заказа.
После 1 октября начинается сезон и цены договорные.
Сроки на сборку пакетов. до 5 рабочих дней.
Если нужно быстрее то мы можем взять доплату за срочность.

В стоимость сборки входит - Картон на подручники и донышки, двусторонний скотч, шнур толщиной 4 мм.
Не входит в стоимость - Ламинация, Вырубка. установка люверсов - 3 рубля за 4 шт. при стальном и золотом цвете, шнур толщиной более 4 мм и не стандартные виды шнура. ленты и тесьмы, изготовление нового штампа под Ваш размер ( 4-12 тыс.р. ; у нас есть в наличии 600 штампов и один из них Вас наверняка устроит )
Летом 2011 года мы установили автоматические линии по сборке бумажных пакетов с одно листа от а3 до а1
Самая низкая в Москве цена на сборку пакетов бумажных с ламинацией из картона и меловки от 170 гр только у нас. от 3 р с Вашими расходниками.
Мы можем предоставить наши расходники. всегда в наличии большой ассортимент шнура. ленты. тесьмы. люверсов. картон на дно и поручники. гофрокоробки и т д.
На линиях можно собирать пакеты из:
- мелованной бумаги с ламинацией и без от 170 гр. до 300 гр.
- все виды картона с ламинацией и без.
Принимаем тиражи на автоматическую сборку от 10 тыс.шт.
От 5 р с нашими расходниками. В месяц собираем до 1 мил. пакетов.
Хотите получить скидку.
Пришлите письмо от наших конкурентов. где они Вам предлагают цену ниже нашей.
И тогда мы Вам на 1-2 р дадим цену ниже.
У нас самые низкие цены в Москве и когда клиент просит еще и скидку.
мы просто не понимаем о чем идет речь.

Сборка бумажных пакетов производится сотрудниками нашей компании, которые имеют большой опыт в этом деле, что позволяет им выполнять свою работу очень быстро и качественно. Этот процесс начинается с того, что сборщики получают заготовки, представляющие собой готовые вырубленные листы соответствующей конфигурации с предварительно нанесенными на них рисунками и надписями. Сборка пакетов может происходить или вручную, или с использованием специального оборудования, значительно ускоряющего этот процесс. Если работы производятся вручную, то сначала места сгиба наши сотрудники фальцуют с помощью специального инструмента, который называется биговка. В результате на бумаге появляются небольшие углубления, по которым заготовки складываются и приобретают требуемую форму. Естественно, что бумажные пакеты необходимо скрепить, и для этой цели может использоваться как специальный скотч, имеющий клейкую поверхность с обеих сторон, так и различные виды клея (водно-дисперсионные, акриловые и т. п.). Поскольку бумага, как известно, – не самый прочный материал, то сборка пакетов из нее обязательно подразумевает дополнительное укрепление всей конструкции. С этой целью изготавливаются специальные картонные вкладыши, которые укладываются и закрепляются на дне пакетов, а также в их верхней части. Таким образом «грузоподъемность» и «выносливость» этих изделий существенно возрастают, особенно если снабдить их прочными ручками. Именно установка ручек и является той операцией, которой, по сути дела, и завершается сборка бумажных пакетов. Происходит это следующим образом: в местах крепления с помощью специального инструмента вырубаются отверстия, в которые устанавливаются специальные металлические кольца (люверсы), в которые продеваются ручки. На концах ручек (чтобы они не вылетали из люверсов) завязываются узелки.

© Все права принадлежат "Московской Календарной Компании" 2006-2015 г.

Urpmi - автоматическое добавление источников при установке пакетов по сети — Блог: Точка Росы

Urpmi - автоматическое добавление источников при установке пакетов по сети


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

Однако контейнеры - вещь временная, используемая для тестирования пакетов перед их отправкой в репозиторий (или на свалку истории). Более того, контейнеры на ABF автоматически уничтожаются через два месяца после создания. Так что добавление контейнера как постоянного источника вряд ли разумно - нужен он обычно только один раз, а после только засоряет систему.

Если в контейнере только один пакет, то можно передать urpmi прямую ссылку на этот пакет. Однако если в контейнере несколько пакетов, зависящих друг от друга, то придется добавлять источник, ставить пакет, а потом (рано или поздно) этот источник удалять. Многовато действий для ленивых тестировщиков и разработчиков! Неудивительно, что не раз поступали предложения сделать urpmi немного умнее и автоматически пробовать добавлять источник, если запрашивается установка пакета по сети, а после завершения установки этот источник автоматически удалять.

Например, допустим мы хотим установить пакет apache-mpm-prefork из сборки https://abf.io/build_lists/2290444. С предыдущей версией urpmi, попытка передать URL пакета напрямую успеха бы не принесла:

Понятное дело, недостающий apache-base-2.4.10-2 находится в том же контейнере.

С новым urpmi эта команда отрабатывает "на ура":

Как мы видим, перед установкой пакета urpmi добавил источник с названием medium_for_apache-mpm-prefork-2.4.10-2-rosa2014.1.x86_64.rpm. а после установки удалил его. Даже если попытка установки завершится неудачно (по причине конфликтов, отсутсвия зависимостей, либо если вы просто ответите "нет" на предложение urpmi поставить необходимые пакеты), то источник все равно будет удален. Однако если вы прервете выполнение urpmi в процессе установки пакета (например, нажав Ctrl-C), то источник останется у вас в системе.

URL источника определяется очень просто - из URL, переданного в качестве аргумента urpmi, Отбрасывается имя пакета. Если источник по заданной ссылке добавить не удастся, то будет выведено соответствующее сообщение, однако установка запрошенного пакета будет продолжена. Автоматическое добавление источников можно полностью отключить в командной строке с помощью опции --no-auto-media. либо выставив глобальную опцию no-auto-media в файле /etc/urpmi/urpmi.cfg.

[ Хронологический вид ] Комментарии

Beyond Linux From Scratch

Пакет GStreamer-0.10.25 Знакомимся с пакетом GStreamer

В пакете GStreamer находится фреймворк для работы с мультимедийными потоками, позволяющий приложениям совместно использовать общий набор плагинов для таких операций, как кодирование и декодирование видео и аудио, фильтрация аудио и видео, визуализация аудио, потоковая веб-обработка, или обработка иных потоков данных в режиме реального времени или как-то иначе. Пакет создан после завершения исследования программ, разработанных в институте Oregon Graduate Institute. После установки пакета GStreamer, вам, скорее всего, потребуется установить один или несколько следующих пакетов: GStreamer Good Plug-ins-0.10.17. GStreamer Ugly Plug-ins-0.10.10. GStreamer Bad Plug-ins и GStreamer FFmpeg plug-in .

Информация о пакете Зависимости пакета GStreamer Обязательные Необязательные

GSL. Check-0.9.8 (требуется для запуска регрессионных юнит тестов. а также для подключения libgstcheck-0.10 ) и Valgrind (дополнительно используется во время выполнения регрессионных юнит тестов) .

Необязательные (необходимые для сборки документации по API)

GTK-Doc-1.18 и Python-2.7.2 (компилируется совместно с парсером XML, таким как Expat-2.0.1 ). Кроме того, разработчики могут получить доступ к документации по API, находящейся в онлайновом доступе на freedesktop.org

Необязательные (требуемые для сборки руководств)

libxslt-1.1.26. TeX Live-20110705. DocBook-utils-0.6.14. Transfig (все они необходимы для сборки руководства в формате HTML), плюс GPL Ghostscript-9.04 и Netpbm для сборки руководств в форматах postscript и PDF manuals. Кроме того, разработчики могут получить доступ к руководству, находящейся в онлайновом доступе на freedesktop.org

Установка пакета GStreamer

Установите пакет GStreamer с помощью следующих команд:

Чтобы проверить результаты, выполните команду make check. В Makefile есть много других вариантов, которые вы можете выбрать при запуске тестов. Чтобы увидеть полный список возможностей, выполните команду make -C tests/check help .

Теперь в роли пользователя root выполните:

Тестирование установленного варианта

Чтобы проверить функциональные возможности установленного варианта Gstreamer, вы можете в роли обычного пользователя запустить простой тест (перед тем, как выполнять тестирование, вам, возможно, придется в роли пользователя root запустить команду ldconfig ).

Если команда выводит серию сообщений, выдаваемых модулями fakesrc и fakesink, то все в порядке.

Пояснение команд

--enable-gtk-doc. Используйте этот параметр, если установлен пакет GTK-Doc и вы хотите пересобрать и установить документацию по API.

sed -i 's/\(.*gtkdoc-rebase --relative.* \)\(;.*\)/\1|| true\2/' \ docs//Makefile.in. Второй тест Makefile проверяет, присутствует ли команда gtkdoc-rebase. и если она есть, то он выполняется, но если gtkdoc-rebase отсутствует, то which gtk-doc интерпретируется командой make как ошибочный. Команда sed гарантирует, что эта команда всегда отрабатывает так, как надо.

--disable-static. Предотвращает сборку статических библиотек.

--enable-docbook. Этот параметр используется для сборки версий документов GStreamer User's Manual (Руководство пользователя пакета GStreamer), FAQ (Часто задаваемые вопросы) и Writer's Guide (Руководство по программированию) в форматах HTML, PDF и PostScript. Обратите внимание, что должны быть установлены все перечисленные зависимости.

chown -v -R root:root. . Владельцем устанавливаемой документации является тот пользователь, который распаковал и собрал пакет. Эта команда изменяет владельца на root:root для файлов с установленной документацией, причем эта команда выполняется только в том случае, если файлы с документацией были собраны и установлены.

Описание пакета

Установленные программы: gst-feedback<,-0.10>, gst-inspect<,-0.10>, gst-launch<,-0.10>, gst-typefind<,-0.10>, gst-xmlinspect<,-0.10> и gst-xmllaunch<,-0.10>

Установленные библиотеки: libgstbase-0.10., libgstcheck-0.10., libgstcontroller-0.10., libgstdataprotocol-0.10., libgstnet-0.10., libgstreamer-0.10. и модули плагрнов libgst*.

Установленные директории: /usr/include/gstreamer-0.10, /usr/lib/gstreamer-0.10, /usr/share/doc/gstreamer-0.10, /usr/share/gtk-doc/html/gstreamer<,-libs,-plugins>-0.10

Остек установка сборки пакетов revolino руководство

Цитата(blackdevil @ 6th January 2010 - в 23:45)

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

Я тоже интересовался вопросами сборки пакетов, но меня больше интересовали вопросы зависимостей (Как определить какие пакеты нужны по зависимостям, если у меня, к примеру, всё, что нужно уже установлено?)
Вот здесь есть мнение, что виртуальная машина - лучший вариант:

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

Поэтому вариант с виртуальной машиной я бы не отбрасывал. Может и неудобно и ресурсоемко, зато это действительно чистая среда сборки. С другой стороны могут быть сложности с виртуальным железом. Так что, все очень непросто.

ЗЫ: Кстати, там же, приводится скрипт, позволяющий вытянуть из вывода ./configure имена зависимостей. ИМХО, полезная вещь.

Пускай скрипят мои конечности.
Я - повелитель бесконечности.
Мой блог

Автоматическая система склёпывания пакетов МПП Rivomat

Автоматическая система склёпывания пакетов МПП Rivomat

Характерные особенности технологии склёпывания на установке Rivomat II®

  • Минимальное смещение слоёв при клёпке позволяет работать с печатными платами, имеющими количество слоёв более 20;
  • Рассовмещение внутренних слоёв в среднем 10 мкм;
  • Для оптимального фиксирования слоёв используется от 4 до 24 заклёпок;
  • Автоматическое устройство подачи клёпок с легко и быстро съёмным магазином;
  • Легко сменные магазины для заклёпок различной длины (от 1,4 до 6,0 мм) не требующие дополнительной регулировки;
  • Очень удобный переход на различные размеры заготовок.

Процесс автоматического сверления и клёпки на установке Rivomat II®

  • 6 прижимных лапок для прижима пакета к столу.
  • Сверление 4-мя шпинделями 4 отверстия за один заход. Образовавшаяся в результате сверления пыль удаляется вытяжной системой.
  • Автоматический клепальный модуль устанавливает и развальцовывает 4 заклёпки одновременно за один заход.
  • В зависимости от предварительных настроек процесс сверления и склёпывания может бать проведён максимально для 24 заклёпок.
  • Для того, чтобы увеличить производительность и упростить последовательность операций на установки Rivomat I для серийного производства, была разработана и изготовлена установка Rivomat II.
  • Установка Rivomat II имеет новинку - стол предварительной сборки для укладки слоёв и препрега с устройством автоматического снятия склёпанных пакетов с базовых штифтов.
  • Предварительно внутренние слои и препрег в необходимом порядке укладываются на съёмную плиту стола предварительной сборки, имеющую 2 или 4 базовых штифта, а затем съёмную плиту вместе с собранным пакетом помещают в установку Rivomat II для сверления и склёпывания.
  • В течение процесса автоматической склёпки производится сборка следующего пакета. По окончании процесса клёпки первый пакет вместе с плитой поднимается и остаётся в данном положении.
  • Теперь Rivomat II готов для клёпки следующего пакета.
  • Первый пакет вместе с плитой помещается на сборочный стол. Rivomat II запускается для склёпки второго пакета нажатием на педаль, расположенную на полу перед установкой.
  • Нажатием на педаль, расположенную на полу перед сборочным столом, производится снятие склёпанного пакета со штифтов и отделение его от плиты. Теперь стол свободен для сборки следующего пакета.

Пневмогидравлический модуль склёпки

Для клепания пустотелых клёпок Ф 2,5 мм имеющих длину 1,4, 1,9, 2,5, 3,0, 4,0, 5,0 и 6,0 мм;

  • 4 сверлильных электрошпинделя с системой пылеудаления.
  • 4 прижимные лапки со встроенной системой пылеудаления.
  • 4 модуля склёпки с устройством автоматической подачи клёпок.
  • 6 прижимных лапок для прижима пакета к столу.
  • Дополнительная опция: устройство для выравнивания поверхности шляпок заклёпок.

Преимущества технологии установки заклепок PrintProcess в сравнении с традиционной технологией

В традиционных системах заклепки устанавливаются в предварительно перфорируемые отверстия. При их установке возможно искривление оси цилиндра заклепки и ее диаметра, что приведет к смещению скрепляемых слоев. На Rivolino внутренние слои предварительно сцентрированы с помощью пинов. Многослойный пакет зажат при сверлении отверстий и установке заклепок. Пустотелые заклепки устанавливаются и заклепываются с помощью гидравлической системы, обеспечивающей перпендикулярность оси цилиндра заклепки к поверхности пакета и сохранение ее диаметра. Этот процесс повторяется несколько раз. Таким образом достигается надежное скрепление пакета и не согласование с осью от слоя к слою сводится к минимуму. При ламинировании пакета слои надежно скреплены между собой, однако не возникает ни какого стресса связанного с штифтами на прессформах. Шляпки заклепок практически не выходят за габариты пакета. Толщина стенки заклепки 0,15 мм. Наличие препрега и слоев в пакете сводит на нет взаимодействие заклепок с прокладочными листами. Не требуются прессформы различных типоразмеров, нет зависимости от стандартного размера заготовки, поэтому можно избежать значительных затрат на производстве.

Максимальный и минимальный размер платы

6 слоёв с 8 заклёпками - 22 секунды

8 слоёв с 12 заклёпками - 26 секунд

Rivomat II вместе с раздаточными установками DISPOMAT для внутренних слоёв и препрега. Это высокопроизводительная система для безошибочной комплектации и сборки пакета многослойной печатной платы с большим количеством вн

OpenSCADAWiki: Doc

Руководство по сборке OpenSCADA из исходных текстов Введение

Данное руководство призвано помочь в сборке системы OpenSCADA из исходных текстов. По мере накопления опыта сборки на различных дистрибутивах ОС Linux и на других платформах вообще документ будет дополняться особенностями и деталями сборки в различных окружениях.

Документ также содержит информацию о предварительной настройке собранной системы OpenSCADA для полноценного пуска с использованием поставляемой с исходным текстом демонстрационной БД (модель "АГЛКС").

Для сборки OpenSCADA из исходных текстов требуется опыт сборки свободного ПО, а также базовые знания в ОС Linux и используемого дистрибутива Linux, что позволит корректно удовлетворять зависимости и решать возможные проблемы сборки.

Конфигурация OpenSCADA для сборки

Проектом OpenSCADA, в качестве сборочной системы, используется набор утилит AutoTools. Любой сборке проекта под управлением "AutoTools" предшествует стадия конфигурации, а иногда и формирования сборочной системы под окружение ОС. Стадия конфигурации, как и непосредственно сборка, осуществляется всегда и не зависит от того производится это прямая сборка или сборка пакета.

Для формирования сборочной системы должны быть установлены утилиты "AutoTools": "autoconf", "automake" и "libtool". Общее формирование можно произвести командой "$ autoreconf -if ". Ранее сформированную сборочную систему иногда может потребоваться переформировать, например, в случае значительного различия окружения ОС на которой сборочная система формировалась и текущей. Переформирование сборочной системы осуществляется ранее указанной командой формирования.

Конфигурация сборочной системы осуществляется вызовом команды "$ configure ". Посредством указания аргументов к этой команде можно включить/выключить функцию или модуль OpenSCADA при сборке. Получить весь список доступных параметров конфигурации и модулей OpenSCADA можно указав аргумент --help .

Включение и выключение модулей OpenSCADA осуществляется передачей аргументов --enable- и --disable-. Для выбора модулей можно указать политику "Включить все модули" --enable-AllModuls или "Выключить все модули" --disable-AllModuls. а далее включать/выключать отдельные модули, в зависимости от того что будет проще. Большинство модулей OpenSCADA можно влинковывать (встраивать) прямо в библиотеку ядра OpenSCADA, а не собирать отдельной библиотекой, для чего нужно указать аргумент --enable-=incl .

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

Прямая сборка системы OpenSCADA

Сборка должна производится от имени обычного пользователя. При этом будут рассмотрены варианты установки и исполнения как глобально в систему, так и локально, в директории пользователя. Принимаем логин пользователя — "user".

Перед сборкой входим как обычный пользователь и подменяем login "user" на Ваш, определяемся с источником исходных текстов (ftp/http-сервер или SVN-репозиторий), способом установки (глобальный или локальный) и следуем инструкции:

Этапы подготовки дерева исходных текстов к сборке:

  1. Создание директории для сборки проекта:
  • Загрузка пакета с исходными текстами. Может быть произведена двумя способами:
    • загрузка тарбола исходных текстов и ресурсов с ftp-сервера проекта ftp://ftp.oscada.org/OpenSCADA и распаковка, например так:

    $ wget ftp://ftp.oscada.org/OpenSCADA/0.8.0/openscada-0.8.0.tar.lzma
    $ wget ftp://ftp.oscada.org/OpenSCADA/0.8.0/openscada-res-0.8.0.tar.lzma
    $ tar --lzma -xvf openscada-0.8.0.tar.lzma
    $ cd openscada-0.8.0
    $ tar --lzma -xvf. /openscada-res-0.8.0.tar.lzma

  • получение дерева исходных текстов из SVN-репозитория проекта:

    $ svn co svn://oscada.org/trunk/OpenSCADA
    $ cd OpenSCADA

  • Удовлетворение зависимостей проекта OpenSCADA для сборки в соответствии с требованиями.
  • Генерация сборочной системы, при загрузке из SVN-репозитория:

    Этапы глобальной сборки:

    1. Конфигурация сборочный системы OpenSCADA:
  • Сборка проекта OpenSCADA:

    $ su; make install

  • Установка ряда файлов конфигурации и данных. Пропускаем для версий OpenSCADA >= 0.8.1!
    • Копирование скрипта запуска и конфигурационного файла демонстрации:

    $ cp data/ModelsDB/AGLKS/openscada_demo /usr/bin
    $ cp data/ModelsDB/AGLKS/oscada_AGLKS.xml /etc

  • Формирование директории с данными и заполнение её:

    $ mkdir /var/spool/openscada
    $ mkdir /var/spool/openscada/
    $ cp data/LibsDB/*.db /var/spool/openscada/LibsDB
    $ cp data/ModelsDB/AGLKS/*.db /var/spool/openscada/AGLKS
    $ cp data/icons/* /var/spool/openscada/icons
    $ install -m 777 -d /var/spool/openscada/ARCHIVES/

    Этапы локальной сборки:

    1. Конфигурация сборочный системы OpenSCADA:

    /OScadaW; ./configure --prefix=/home/user/OScadaW

  • Сборка проекта OpenSCADA:
  • Установка ряда файлов конфигурации и данных. Пропускаем для версий OpenSCADA >= 0.8.1!
    • Копирование скрипта запуска и конфигурационного файла демонстрации:

    /OScadaW/etc
    $ cp data/ModelsDB/AGLKS/oscada_demo_local.xml

  • Формирование директории с данными и заполнение её:

    /OScadaW/share/openscada/LibsDB
    $ cp data/ModelsDB/AGLKS/*.db

    /OScadaW/share/openscada/AGLKS
    $ cp data/icons/*

    /OScadaW/share/openscada/icons
    $ install -m 777 -d

    Сборка пакетов системы OpenSCADA для дистрибутива Linux Redhat-based дистрибутивы - пакет RPM

    Для сборки RPM-пакетов OpenSCADA Вам понадобятся архивы исходных текстов, ресурсов и файл спецификации RPM пакета (openscada.spec, openscada_mod.spec) или же SRPM-пакет всех этих исходных материалов (openscada-0.8.0-1.src.rpm), которые можно загрузить с ftp или http -сервера проекта.

    Файл спецификации RPM-пакетов и SRPM-пакет могут отличаться для разных дистрибутивов Linux, учитывая их особенности, поэтому нужно стараться загружать их в соответствии с дистрибутивом. Если специальный SRPM пакет отсутствует, то можно попробовать собрать из унифицированного файла спецификации в основном SRPM пакете.

    Сборка RPM-пакетов производится в директории со специальной структурой, которая обычно создаётся при установке соответствующего пакета дистрибутива (например: rpm-build). Эта директория в зависимости от дистрибутива располагается в домашней директории пользователя или в директории /usr/src. Известные факты расположения директории сборки RPM-пакетов различных дистрибутивов:

    Если после установки специализированного пакета директории создания RPM пакетов нет, то её нужно создать командой:

    $ install -m 755 -d Директория дистрибутива /

    Этапы сборки по файлу спецификации RPM:

    1. Размещение архивов OpenSCADA и файла спецификации в директории сборки RPM (исходные файлы предварительно помещены в текущей директории):

    $ cp openscada-0.8.0.tar.lzma openscada-res-0.8.0.tar.lzma Директория дистрибутива /SOURCES
    $ cp openscada.spec Директория дистрибутива /SPECS

  • Удовлетворение зависимостей проекта OpenSCADA для сборки в соответствии с требованиями. Аргументы команды "configure" можно указать в файле "openscada.spec".
  • Сборка пакетов
    • сборка сначала:

    $ rpmbuild -bb Директория дистрибутива /SPECS/openscada.spec

  • только установка и упаковка из пакета rpm-утилит etersoft (удобно при настройке openscada.spec файла):

    $ rpmbb -i Директория дистрибутива /SPECS/openscada.spec

  • Пакеты готовы и доступны в директории Директория дистрибутива /RPMS для соответствующей архитектуры.

  • Этапы сборки из SRPMS пакета:

    1. Удовлетворение зависимостей проекта OpenSCADA для сборки в соответствии с требованиями.
    2. Сборка пакетов (исходные файлы предварительно помещены в текущей директории):

    $ rpmbuild --rebuild openscada-0.8.0-1.src.rpm

  • Пакеты готовы и доступны в директории Директория дистрибутива /RPMS для соответствующей архитектуры.
  • Debian-based дистрибутивы - пакет Deb

    Для сборки Deb-пакетов OpenSCADA Вам понадобятся архивы исходных текстов и ресурсов, которые можно загрузить с ftp или http -сервера проекта.

    Сборка Deb-пакетов производится в директории "debian" со скриптами сборки, которая содержится в архивах исходных текстов OpenSCADA.

    1. Создание директории для сборки проекта:
  • Загрузка пакета с исходными текстами. Загрузка тарбола исходных текстов и ресурсов с ftp-сервера проекта ftp://ftp.oscada.org/OpenSCADA и распаковка, например так:

    $ wget ftp://ftp.oscada.org/OpenSCADA/0.8.0/openscada-0.8.0.tar.lzma
    $ wget ftp://ftp.oscada.org/OpenSCADA/0.8.0/openscada-res-0.8.0.tar.lzma
    $ tar --lzma -xvf openscada-0.8.0.tar.lzma
    $ cd openscada-0.8.0
    $ tar --lzma -xvf. /openscada-res-0.8.0.tar.lzma

  • Выбор типа сборки:
    • бинарные файлы в одном пакете:

    $ ln -s openscada-0.8.0/data/debian openscada-0.8.0/debian

    • бинарные файлы модулей в отдельных пакетах:

    $ ln -s openscada-0.8.0/data/debian_mod openscada-0.8.0/debian

  • Удовлетворение зависимостей проекта OpenSCADA для сборки в соответствии с требованиями. Аргументы команды "configure" можно указать в файле openscada-0.8.0/debian/rules.
  • Переход в директорию OpenSCADA и запуск сборки:
  • пропустить сборку и переупаковать, удобно при отладке openscada-0.8.0/debian/rules.

    $ fakeroot debian/rules binary
    $ fakeroot debian/rules build

  • Пакеты готовы и доступны в директории уровнем выше.
  • Gentoo - метадистрибутив

    OpenSCADA не входит в официальное дерево portage Gentoo, поэтому сборка производится из оверлея. Подробно про работу с оверлеем можно найти на сайтах документации Gentoo, например: http://ru.gentoo-wiki.com/wiki/Portage_Overlay. Перед сборкой самого пакета OpenSCADA portage удовлетворит зависимости, т.е. соберет недостающие пакеты (если необходимо).


    1. Создание оверлея portage сводится к описанию пути для оверлейного дерева, т.е. в /etc/make.conf необходимо прописать строку:
  • Создать каталог /usr/local/portage/dev-util/openscada/. затем скачать файл архива ebuild c официального сайта и распаковать его в созданном каталоге.

    $ cd /usr/local/portage/dev-util/openscada
    $ wget ftp://ftp.oscada.org/OpenSCADA/0.8.0/Gentoo/openscada-0.8.0.ebuild.tar.gz
    $ tar -xzf openscada-0.8.0.ebuild.tar.gz

  • Необходимо указать portage, что OpenSCADA разрешена для сборки на Вашей платформе. Для этого надо внести следующую строку в файл /etc/portage/package.keywords.

    $ emerge -vp openscada
    These are the packages that would be merged, in order:
    Calculating dependencies. done!
    [ebuild R

    ] dev-util/openscada-0.8.0 USE="mysql ssl -bfn -blockcalc -daqgate -dbarch -dbase -dcon -demo -diamondboards -doc (-firebird) -flibcomplex1 -flibmath -flibsys -fsarch -http -icp_das -javalikecalc -logiclev -modbus -portaudio -qtcfg -qtstarter -selfsystem -serial -simens -snmp -sockets -sqlite -system -systemtest -vcaengine -vision -webcfg -webcfgd -webvision" 79,647 kB [1]

    Total: 1 package (1 reinstall), Size of downloads: 79,647 kB
    Portage tree and overlays:
    [0] /usr/portage
    [1] /usr/local/portage

  • Если у Ваc нет подключения к интернету, то надо загрузить тарбол исходных текстов и ресурсов с ftp-сервера проекта и расположить их заранее в каталоге исходников portage (/usr/portage/distfiles ). Если же у Вас есть подключение к интернету, то все необходимое для сборки будет взято с сервера проекта автоматически.
  • Необходимо выставить нужные Вам USE-флаги, с которыми будет собрана OpenSCADA. Это можно сделать в файле /etc/portage/package.use. например:

    dev-util/openscada dcon demo http javalikecalc mysql qtcfg qtstarter ssl vision webcfg webcfgd webvision blockcalc dbarch dbase doc flibcomplex1 flibmath flibsys fsarch logiclev modbus serial sockets sqlite vcaengine

    $ emerge -q openscada

  • Файлы БД и ресурсов OpenSCADA готовы и будут размещены в каталоге /var/spool/openscada/. исполняемые файлы - /usr/bin/. документация - /usr/share/doc/openscada-0.8.0/ .
  • Ссылки

    Сборка пакетов

    Эта статья не завершена. Вы можете помочь в ее написании

    исправив стилистику статьи

    добавив больше информации о подготовке исходных кодов для дебианизации

    Дистрибутивы, основанные на Debian – это не только отличная система управления пакетами APT. которая сама разрешает зависимости, но и удобные инструменты для создания пакетов и своих репозиториев. Если уж вы решились собрать программу из исходников, то советую ещё изучить, как дебианизировать исходники. Это отнимет чуть больше времени, чем стандартное

    но зато позволит сохранить систему в чистоте. Удалить программы, установленные командой make install. можно только командой

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

    Ну и что? Главное - работает!

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

    Очень часто исходники по умолчанию «рассчитаны» на определённый дистрибутив, или, наоборот, рассчитаны только на установку из исходников, при этом выполняются разного рода «удобные» настройки в конфигурационных файлах. Так, например, очень любят прописывать mime-типы. Но проблема в том, что переводы разные бывают и в Nautilus может выскочить ошибка

    и документ не будет открываться. Таких «недочётов» может быть очень много. А теперь, если представить что это удалить нельзя, поскольку пользователь не запоминал что и куда поставилось, наступает паника и как результат - переустановка.

    Но как быть, если программу хочется поставить, а версия в deb-пакете устарела, или такой вообще нет?

    Есть два выхода:

    Использовать программу checkinstall. Она собирает всё в один пакет. К сожалению, она позволяет решить только вопрос с удалением программы. И даже если APT будет знать, что программа установлена, он в лучшем случае сообщит, что есть конфликт файлов,

    Чаще всего такие случаи очень корректно разрешаются путём удаления конфликтного пакета. Но на разбор ситуации уйдёт некоторое время.

    Cобрать нормальный пакет, как это делают мантейнеры. В котором будет корректная версия, зависимости и расположение файлов будет соответствовать политике дистрибутива. Вижу вам всё ещё интересно . Это радует.

    Возможны следующие случаи сборки пакетов:

    сборка из исходников;