пятница, 26 июня 2009 г.

NagiOS

Nagios — программа с открытым кодом, предназначенная для мониторинга компьютерных систем и сетей.

Она следит за указанными узлами и службами, и оповещает администратора в том случае, если какие-то из служб прекращают (или возобновляют) свою работу.

Nagios (произносится как «нагиос»), первоначально созданная под именем Netsaint, разработана Этаном Галстадом (Ethan Galstad). Он же поддерживает и развивает систему сегодня, совместно с командой разработчиков, которые занимаются как официальными, так и неофициальными плагинами.

Первоначально Nagios была разработана для работы под GNU/Linux, но она также хорошо работает и под другими Unix-подобными ОС.

Nagios распространяется по лицензии GNU General Public License Version 2.

Обзор возможностей

  • Мониторинг сетевых служб (SMTP, POP3, HTTP, NNTP, ICMP, SNMP)
  • Мониторинг состояния хостов (загрузка процессора, использование диска, системные логи). В большинстве сетевых операционных систем, даже Microsoft Windows с модулем NRPE_NT
  • Поддержка удаленного мониторинга через шифрованные туннели SSH или SSL
  • Простая архитектура модулей расширений (плагинов) позволяет, используя любой язык программирования по выбору (Shell, C++, Perl, Python, PHP, C# и другие), легко разрабатывать свои собственные способы проверки служб
  • Параллельная проверка служб
  • Возможность определять иерархии хостов сети с помощью «родительских» хостов, позволяет обнаруживать и различать хосты, которые вышли из строя, и те, которые недоступны
  • Отправка оповещений в случае возникновения проблем со службой или хостом (с помощью почты, пейджера, смс, или любым другим способом, определенным пользователем через модуль системы)
  • Возможность определять обработчики событий произошедших со службами или хостами для проактивного разрешения проблем
  • Автоматическая ротация лог-файлов
  • Возможность организации совместной работы нескольких систем мониторинга с целью повышения надёжности и создания распределенной системы мониторинга
  • Включает в себя утилиту nagiostats, которая выводит общую сводку по всем хостам, по которым ведется мониторинг.

Название

Согласно официальному FAQ Этана Галстада на сайте Nagios, N.A.G.I.O.S. это рекурсивный акроним, расшифровка которого в переводе звучит так: «Nagios не собирается настаивать на святости». Это камень в огород программы, послужившей основой для Nagios, Netsaint.


ТипМониторинг сети
РазработчикЭтан Галстад
ОСUNIX-подобные
Версия3.1.0 — 25 января, 2009
ЛицензияGNU General Public License
Сайтwww.nagios.org

среда, 24 июня 2009 г.

скрипт для быстрого обновления системы

я так обленился, что мне даже лень два раза писать
$ sudo aptitude update
$ sudo aptitude upgrade


поэтому я сделал удобный скриптик, который обновляет систему в одну команду:)
$ sudo nano /usr/local/bin/upgrade-system
туда пишем:
1
2
3
#!/bin/bash
sudo aptitude update
sudo aptitude upgrade

даем права:
$ sudo chmod +x /usr/local/bin/upgrade-system

теперь для обновления всей системы достаточно в системе выполнить:
$ upgrade-system

p.s. это должно продемонстрировать, насколько просто можно создавать свои сценарии.
например, аналогично можно организовать запуск 2gis. вместо большой цепочки из wine и пути до exe'шника.
Взято с http://welinux.ru/post/959/

Мини дистрибутивы семейства Ubuntu

Этот пост посвящен подборке мини дистрибутивов Ubuntu linux созданных под конкретные задачи, как например веб сервер, сервер баз данных (MYSQL, PostgreSQL), Ruby on rails, для запуска вебсайта или блога за считанные минуты. Все сборки имеют Webmin для удаленного управления и настройки системы. Так же сборки отлично подойдут для использования в виртуальных окружениях типа VmWare, XEN или KVM. На сегодня на сайте производителя данных мини дистрибутивов можно найти 12 образов, все они созданы на базе Ubuntu Server 8.04.2, тоесть последей на сегоднящний день стабильной версии этой замечательной системы.

LAMP - Linux, Apache, MSQL, PHP


Стандартный набор приложений для работы с сайтами и веб приложениями, включает в себя следующие компоненты
SSL поддерживается сразу после установки.
PHP, Python, Perl с поддержкой Apache2 и MySQL.
PHPMyAdmin для управления сервером MySQL (Слушает на порту 12322 и использует SSL).
Webmin для настройки Apache2, PHP и MySQL.

По умолчанию параметры авторизации (для Webmin, SSH, MySQL, phpMyAdmin):
Имя пользователя root
Без пароля
Пароли назначаются в процессе инсталляции

Скачать образ, 154MB: turnkey-lamp-2009.02-hardy-x86.iso


LAPP - Linux, Apache, PostgreSQL, PHP


Эта сборка идентична той что описана выше, за исключением того что в ней заменен сервер баз данных на PostgreSQL.

Компоненты сборки:
SSL поддерживается сразу после установки.
PHP, Python, Perl с поддержкой Apache2 и PostgreSQL.
PHPPgAdmin для управления сервером PostgreSQL (Слушает на порту 12322 и использует SSL).
Webmin для настройки Apache2, PHP and PostgreSQL.
Шифрование паролей в PostgreSQL включено по умолчанию.

Параметры авторизации по умолчанию:
Webmin, SSH: логин root, без пароля
postgresql, phppgadmin: логин postgres, пароль postgres

Скачать образ, 128MB: turnkey-lapp-2009.02-hardy-x86.iso


Ruby on rails


Компоненты сборки:
SSL поддерживается сразу после установки.
Webmin для настройки Apache2, and MySQL.
Настроенные примеры Rails приложений помещены в /var/www/railsapp


Apache2 настроен как load-balancing reverse proxy для 3-node cluster.
Пакетный менеджер RubyGems установлен из upstream tarball
Рекомендуется использовать RubyGems для управления пакетами Rails, и APT для всех остальных пакетов.
Компоненты RubyGems:
rails
mysql support
mongrel_cluster

Параметры авторизации по умолчанию:
Webmin, SSH, и MySQL: логин root, без пароля
Пароли устанавливаются при установке
railsapp_*: логин railsapp_user, пароль r4ilsp4ssw0rd

Скачать образ, 171MB: turnkey-rails-2009.02-hardy-x86.iso


Joomla


В этой сборке после установки вы получите настроенную и оптимизированную систему управления контентом Joomla, а так же веб сервер с поддержкой PHP, MYSQL.

Компоненты сборки:
SSL поддерживается сразу после установки
Joomla SEO оптимизирована и настроена сразу после установки.
Postfix MTA настроен на отсылку писем пользователям (например регистрации пользователей, восстановление паролей и для рассылок)
Пароль для Joomla задается в процессе установки.
PHPMyAdmin для управления MySQL (слушает на порту 12322 и использует SSL).
Webmin для настройки Apache2, PHP и MySQL.

Параметры авторизации по умолчанию:
Webmin, SSH, MySQL, и phpMyAdmin: логин root, без пароля
Пароли устанавливаются в процессе установки
joomla: логин admin, пароль turnkey
joomla_db: логин joomla_user, пароль j00mlap4ssw0rd

Скачать образ, 170MB: turnkey-joomla-2009.03-hardy-x86.iso


MediaWiki


SSL поддерживается сразу после установки
Joomla SEO оптимизирована и настроена сразу после установки.
Postfix MTA настроен на отсылку писем пользователям (например регистрации пользователей, восстановление паролей и для рассылок)
PHPMyAdmin для управления MySQL (слушает на порту 12322 и использует SSL).
Webmin для настройки Apache2, PHP и MySQL.
Часто используемые и популярные расширения включены и находятся в (/etc/mediawiki/extensions.php)
FCKeditor: WYSIWYG editor for wiki pages.
ParserFunctions: Enhances parser with logical functions.
StringFunctions: Additional set of parser functions that operate on strings.
CategoryTree: Provides a dynamic view of the category structure as a tree.
Renameuser: Special page allowing authorised users to rename user accounts.
Preloader: Populate new pages with template content depending on namespace.
CharInsert: JavaScript character insert boxes used on edit type pages.
ConfirmEdit: Math captcha.
Gadgets: JS/CSS-based gadgets.
SyntaxHighlight_GeSHi: adds tag to present formatted source code.
Cite: Create footnotes.
UniversalEditButton: Adds support for the UEB firefox extension.
Загрузка файлов и изображений с последующим их масштабированием работает по умолчанию (GD library)
Максимальный размер файла: 2MB
Поддерживаемые типы изображений: png, gif, jpg, jpeg

Некоторые настройки:
Логотип сайта находится: /var/lib/mediawiki/images/logo.png (рекомендуемый размер: 135×135px).
Имя сайта и почтовый адрес администратора (устанавливаются в файле /etc/mediawiki/LocalSettings.php)
$wgSitename = "";$wgEmergencyContact = webmaster@localhost;$wgPasswordSender = webmaster@localhost;

Параметры авторизации по умолчанию:
Webmin, SSH, MySQL, и phpMyAdmin: логин: root, без пароля
Пароли устанавливаются в процессе установки
MediaWiki: логин admin, пароль turnkey
wiki_db: логин wiki_user, пароль w1k1p4ssw0rd

Скачать образ, 180MB: turnkey-mediawiki-2009.02-hardy-x86.iso


Drupal 6


SSL поддерживается сразу после установки
Postfix MTA настроен на отсылку писем пользователям (например регистрации пользователей, восстановление паролей и для рассылок)
PHPMyAdmin для управления MySQL (слушает на порту 12322 и использует SSL).
Webmin для настройки Apache2, PHP и MySQL.
ЧПУ URL настроены и работают из коробки
Часто используемые и популярные модули вклбюченные в сборку по умолчанию:
FCKEditor: Enables FCKeditor (a WYSIWYG editor) instead of plain text fields.
Captcha: Adds image or text based CAPTCHAs to arbitrary forms.
FiveStar: Simple five-star voting widget for nodes.
PathAuto: Allow modules to auto-generate aliases for the content they manage (SEO).
XMLsitemap: Generates an XML site map for auto submittance to search engines (SEO).
Tagadelic: Makes weighted tag clouds from your taxonomy terms.
Webform: Enables the creation of forms and questionnaires.
Admin_menu: Adds dropdown administration menu to the top of the screen.
Google_analytics: Adds Google Analytics js tracking code to all your site’s pages.
CCK: Content Creation Kit - a powerful toolkit for creating custom content types.
Views: Creates customized views of node lists.
Lightbox2: Places images above your current page, not within.
Logintoboggan: Improves Drupal’s login system.
Token: Shared API for replacement of textual placeholders with actual data.

Параметры авторизации по умолчанию:
Webmin, SSH, MySQL, phpMyAdmin: логин root, без пароля
Пароли устанавливаются в процессе установки
drupal6_db: логин: drupal6, пароль генерируется рандомно

Скачать образ, 171MB: turnkey-drupal6-2009.02-hardy-x86.iso

Так же доступна сборка с Drupal 5, Скачать образ, 170MB: turnkey-drupal5-2009.02-hardy-x86.iso


Django


Django - фреймворк для работы веб приложений на Python.

Компоненты сборки:
SSL поддерживается сразу после установки
Настроенные примеры Django project расположены в директории /var/www/django-sites/apps
Интеграция с Apache2 и MySQL.
Встроенная консоль для администрирования с включенной онлайн документацией.
Путь для хранения веб приложений и изображений /var/www/django-sites/httpdocs.
Пароль для Django project создается в процессе установки.
Webmin для настройки Apache2, и MySQL.

Параметры авторизации по умолчанию:
Webmin, SSH, MySQL: логин root, без пароля
Пароли устанавливаются в процессе установки
django admin console: логин admin, пароль turnkey
django_db: логин django_user, пароль dj4ng0p4ssw0rd

Скачать образ, 151MB: turnkey-django-2009.02-hardy-x86.iso

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

MySQL


Скачать образ, 152MB: turnkey-mysql-2009.02-hardy-x86.iso


PostgreSQL


Скачать образ, 128MB: turnkey-postgresql-2009.02-hardy-x86.iso

Оригинальное описание и сайт производителя данных образов: http://www.turnkeylinux.org/appliances

Перевод sudouser.com

вторник, 23 июня 2009 г.

Легкое создание своего дистрибутива Ubuntu.

Для того, чтобы сделать первые шаги в создании своего дистрибутива, нужно не так много:
1. оригинальный iso-образ дистрибутива Ubuntu (CD);
2. подготовленные файлы оформления - сплэш-скрин, апсплэш-скрин, GDM-тема, обои, набор иконок;
3. пакет Reconstructor, скачать можно здесь;
4. пакет Ubuntu Customization Kit (UCK) скачать можно здесь;
5. прочитать пример создания своего дистрибутива под cut-ом :)
N.B.: желателен выход в интернет для доступа к онлайн репозиторию, или локальный срез репозитория.
Итак…

Пакет Reconstructor понадобиться нам для основного
оформления нашего дистрибутива. Reconstructor создаст директории, в
которые будет разобран оригинальный iso-образ, и в которые будут
сохранятся ваши изменения (графическое оформление и дополнительные
модули), чтобы потом из файлов в этих директориях собрать уже ваш
дистрибутив.
Запускаем его: Приложения/Системные/Reconstructor, появится окно
терминала запрашивающее пароль администратора - введите пароль, без
этого программа работать не будет.
::: Первое окно :::
Приветствие, и кнопка обновления программы. Либо обновляем пакет, либо нажимаем Next.
::: Второе окно :::
Выбор способа инсталляции Desktop (LiveCD) или Alternate (Install
CD), выбираем Desktop (чтобы установка шла в графическом режиме и была
возможность работать с LiveCD). Next.
::: Третье окно :::
Выбор рабочего окружения для создания своего дистрибутива:
Working Directory - директория в которой происходит разбор
оригинального iso-образа (оставьте как есть, программа предложит
создать директорию reconstructor в вашей личной директории).
Далее идут три чекбокса: когда вы собираете дистрибутив в первый раз
(или собираете заново с оригинала) - во всех трех окошках надо
выставить галочки. Если же вы создали свой дистрибутив и через
некоторое время захотите доработать его - но при этом не потерять все
ваши остальные изменения, то галочки выставлять не надо.
Аналогичный подход и к последнему пункту - Live CD ISO Filename,
надо указать файл с образом дистрибутива, который вы собираетесь
переделывать, чтобы программа его распаковала в директории, но если вы
все еще дорабатываете свой дистрибутив, который лежит в разобранном
виде, указывать образ iso не надо, иначе распаковка образа перезапишет
находящуюся там информацию.
Поскольку мы делаем первую сборку: отмечаем галочками три окна, указываем где лежит оригинальный образ с дистрибутивом Ubuntu.
Начнется распаковка образа в директории, она займет от 10 до 15 минут (в зависимости от мощности вашей машины).
::: Четвертое окно :::
Customization (настройка), она состоит шести вкладок:
1. Boot Screen (экран загрузчика).
LiveCD Splash, первый экран, который увидит пользователь. Для него
используется картинка в формате .pcx, она должна быть размером 640×480,
с индексированной палитрой в 256 цветов. Создать такую картинку можно в
GIMP.
Пример: mybuntu_splash.pcx
LiveCD Text Color - цвет текста в меню установки (у меня меню
окажется на светлом фоне, поэтому я выбрал черный цвет, не переживайте
по поводу нижнего меню или подсветки выбора опций меню - программа
умная и создаст сама нужную цветовую гамму, потом увидите сами).
Upsplash Filename - когда будет происходить загрузка, будет показан
логотип и бегунок. Этот файл представляет из себя скомпилированный .so
файл библиотеки.
Где его взять? С одной стороны на gnome-look
можно найти готовые файлы с бегунками любой тематики, но с другой -
ведь нас интересует наше личное оформление, и мы сами можем приложить
свой творческий потенциал к оформлению.
Поэтому нам интересна следующая опция - Upsplash Generation, она
позволит из .png файла, который можно создать в GIMP создать
собственный upsplash.so (Внимание: у картинки должна быть
индексированная палитра в 256 цветов!).
Я подкинул генератору вот этот файл.

и сохранил результат как mybuntu.so, который и указал затем в Upsplash Filename.
Обратите внимание, я создал файл с разрешением 640×480 - на базе
моей .pcx картинки, и из-за этого произойдет смещение бегунка в нижний
правый угол (там где я разместил надпись “загрузка” и окно для
бегунка), чтобы бегунок был в центре экрана, вам будет нужно создать
файл с разрешением 800×600.
2. Gnome (оформление среды Gnome).
::: Login :::
GDM Theme - оформление темы входа в систему. Когда вы установите
дистрибутив приглашение на вход может быть оформлено стандартными
темами (выпадающий список), либо скачайте понравившуюся тему отсюда и укажите ее файл, чтобы она попала в список. Я выбрал тему Mint-Shadows.
Кстати, файлы тем идут в архивах tar.gz их можно распаковать,
локализовать и переделать под свой вкус, подробные руководства для
создания своих тем есть на офсайте, т.е. здесь.
Далее, идут три окошка: Sounds - запретить/разрешить проигрывание
звука входа в систему; Root Login - разрешить/запретить вход в систему
под суперпользователем; XDMCP разрешить/запретить вход в систему
автономным дисплеем;
Splash Screen - после входа в систему, GNOME начинает прогружаться и
выбрасывает иконки отражающие стадии загрузки, этот Spash Screen нужен
для того чтобы эти иконки отображались на его красивом фоне.
Я не стал его менять.
Background Color - цвет фона. Я поставил черный.
::: Desktop :::
Wallpaper - обои, которые будут идти по умолчанию. Я подкинул эти.
Application Font, Document Font, Desktop Font, Title Bar Font, Fixed
Font - дают вам возможность выбрать шрифты для вашего дистрибутива.
::: Theme :::
Theme - выбор темы оформления, я выбрал Murrina-GreenMod.
Widow Borders - оформление рамок окон.
Icons - выбор иконок, я скачал GNUtoon - прикольный набор веселых иконок.
3. Apt (настройка списка репозиториев).
Если отметить чекбоксы галочками, вы замените официальные репозитории Ubuntu на свои.
Свои можно вносить в окно в известной вам форме, там есть пример:
deb http://адрес сервера/ версия_системы main restricted и т.п.
У меня нет своих репозиториев, хотя и есть список стороних, я ничего не менял во вкладке Apt.
4. Optimization (оптимизация!).
Здесь есть пара опций, позволяющих вам убыстрить свою систему, но пользуйтесь ими осторожно.
Startup - оптимизировать скорость загрузки системы и Shutdown - оптимизировать скрипты завершения работы.
Я включил только опцию Shutdown, поскольку там есть кнопка Restore - откат. Если будут глюки верну настройки обратно.
5. LiveCD.
Это настройки для пользователя LiveCD, если вам надо закрыть доступ
к диску - можете создать пользователя заполнив эти поля соответствующей
информацией.
6. Modules.
Вот тут-то начинается самое интересное, поскольку здесь вы можете
набить свой дистрибутив нужными вам пакетами, обновить имеющиеся или
удалить ненужные. Кроме того, можно добавлять и активировать сторонние
или свои модули (хотите запуск Emerald сразу при загрузке?).
Обратите внимание, перечислять пакеты для установки/удаления надо через пробел - пакет1 пакет2 пакет3.
Ну и конечно вам необходимо знать как именно называется устанавливаемый/удаляемый пакет.
Я не стал собирать какой-то специфический дистрибутив с определенным
набором программ. Просто поудалял некоторые из имеющихся и поставил
русскую локаль Thunderbird.
Теперь, после того, как вы оформили свой дистрибутив и снабдили его
нужными программами, надо нажать кнопку “Apply”, чтобы применить
сделанные вами изменения.
После применения изменений нажмите Next.
Появится финальное окно, после которого начнется сборка вашего iso образа.
Здесь ничего трогать не стоит, разве что можете указать имя файла
(FileName), и описание дистрибутива (Description), уточнить выбор
архитектуры (я использовал x86, поэтому ничего не менял).
Next. Понеслось. Ждем 10-15 минут.
Все сборка завершена, можно закрыть программу или прожечь свой диск, но не торопитесь. Его еще надо немного доработать!
Теперь мы воспользуемся Ubuntu Customization Kit (UCK), он был установлен в Приложения/Стандартные.
Первым делом он спросит - какие языковые пакеты вам надо установить, выбирайте ru.
Потом он спросит - какой язык должен использоваться при инсталляции системы, выбирайте ru.
Затем он спросит - какое окружение рабочего стола используется, выбирайте gnome.
После этого откроется окно, в котором вы должны найти свой iso образ
со своим дистрибутивом, который вы создали с помощью Reconstructor.
После этого он предложит возможность переименовать ваш дистрибутив,
если вы не сделали этого в Reconstructor-e можете сделать это сейчас.
После этого он спросит вас: Не хотите ли ручками добавить/удалить
пакеты, воспользоваться консолью и вообще проконтролировать процесс
сборки?
Мы уже сделали это в Reconstructor-e, поэтому говорим - no.
Теперь он спросит - хотите удалить приложения для Windows с диска? Я
сказал - yes. Это удалит win32 версию Mozill-ы, и еще кое-что, что нам
не нужно. Зато размер iso уменьшится.
Все UCK готов к сборке, он откроет консоль и запросит
административный пароль чтобы собрать уже окончательную версию вашего
дистрибутива.
В процессе сборки (10-15 минут) он полезет в репозиторий, чтобы
установить языковую локализацию для вашего Gnome и его программ, а так
же уберет неиспользуемые языковые пакеты.
Собранный iso дистрибутива будет лежать здесь:
/home/ваша_домашняя_папка/tmp/remaster-new-files/
Вот что у меня получилось:
Установка.
Загрузка.
Сессия.
Вот и все :)
На зарубежных форумах говорят, что Reconstructor и UCK собираются
объединить свои усилия, чтобы создать один мощный пакет для создания
дистрибутивов, но честно говоря - официальных подтверждений я не нашел.
Послесловие:
Мы надеемся, что наша статья помогла вам понять, что сложные вещи
могут быть достаточно простыми, если есть нужные инструменты и пример.
Конечно представленный здесь материал - лишь основы создания своих
дистрибутивов на базе Ubuntu. Ведь существует множество тонких моментов
по наполнению дистрибутива и оптимизации ядра под разные задачи.
Вряд ли каждый наш читатель сейчас сорвется клепать дистрибутивы под свои нужды, и создавать свое коммьюнити.
И тогда мы подумали над альтернативным применением этого материала:
1. Подарок другу-линуксоиду.
У вас есть друг который работает в Ubuntu? Узнайте какие программы
он использует и создайте для него красивый персональный
русифицированный дистрибутив. Подберите соответствующую тему, иконки,
обои. И подарите его на ближайший праздник (23 февраля, день рождения,
день админа или пятничный пивной саммит).
Дарите с серьезным лицом и словами вроде: “Поздравляю тебя, я тут
Марку Шаттлворту позвонил, попросил создать для тебя убунтовый
персональный дистрибутив. Марк сказал - сделаем, и вот сегодня пришел
по почте, дарю с наилучшими пожеланиями!”
Поверьте, ваш друг просто обалдеет от такого подарка!
2. Розыгрыш (например на первое апреля).
Тут мы долго веселились представляя себе линуксы оформленные в
стилях “Blondinko Edition” - гламурно-розовенько-стразовый, с обоями
Ксюши Собчак; или суровый патриотический дистриб “Putin Edition” - с
фотографией президента.
Примените фантазию. Все в ваших руках. Творите!
За сим откланиваюсь, надо срочно собрать забавный дистрибутив для своих друзей, пока они не прочитали эту статью…
Источник: http://whylinux.ru/2008/01/23/chto-nam-stoit-distr-postroit-legkoe-sozdanie-svoego-distributiva-ubuntu/

Легкое создание своего дистрибутива Ubuntu.

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

1. оригинальный iso-образ дистрибутива Ubuntu (CD);

2. подготовленные файлы оформления - сплэш-скрин, апсплэш-скрин, GDM-тема, обои, набор иконок;

3. пакет Reconstructor, скачать можно здесь;

4. пакет Ubuntu Customization Kit (UCK) скачать можно здесь;

5. прочитать пример создания своего дистрибутива под cut-ом :)

N.B.: желателен выход в интернет для доступа к онлайн репозиторию, или локальный срез репозитория.

Итак…

Пакет Reconstructor понадобиться нам для основного
оформления нашего дистрибутива. Reconstructor создаст директории, в
которые будет разобран оригинальный iso-образ, и в которые будут
сохранятся ваши изменения (графическое оформление и дополнительные
модули), чтобы потом из файлов в этих директориях собрать уже ваш
дистрибутив.

Запускаем его: Приложения/Системные/Reconstructor, появится окно
терминала запрашивающее пароль администратора - введите пароль, без
этого программа работать не будет.

::: Первое окно :::

Приветствие, и кнопка обновления программы. Либо обновляем пакет, либо нажимаем Next.

::: Второе окно :::

Выбор способа инсталляции Desktop (LiveCD) или Alternate (Install
CD), выбираем Desktop (чтобы установка шла в графическом режиме и была
возможность работать с LiveCD). Next.

::: Третье окно :::

Выбор рабочего окружения для создания своего дистрибутива:

Working Directory - директория в которой происходит разбор
оригинального iso-образа (оставьте как есть, программа предложит
создать директорию reconstructor в вашей личной директории).

Далее идут три чекбокса: когда вы собираете дистрибутив в первый раз
(или собираете заново с оригинала) - во всех трех окошках надо
выставить галочки. Если же вы создали свой дистрибутив и через
некоторое время захотите доработать его - но при этом не потерять все
ваши остальные изменения, то галочки выставлять не надо.

Аналогичный подход и к последнему пункту - Live CD ISO Filename,
надо указать файл с образом дистрибутива, который вы собираетесь
переделывать, чтобы программа его распаковала в директории, но если вы
все еще дорабатываете свой дистрибутив, который лежит в разобранном
виде, указывать образ iso не надо, иначе распаковка образа перезапишет
находящуюся там информацию.

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

Начнется распаковка образа в директории, она займет от 10 до 15 минут (в зависимости от мощности вашей машины).

::: Четвертое окно :::

Customization (настройка), она состоит шести вкладок:

1. Boot Screen (экран загрузчика).

LiveCD Splash, первый экран, который увидит пользователь. Для него
используется картинка в формате .pcx, она должна быть размером 640×480,
с индексированной палитрой в 256 цветов. Создать такую картинку можно в
GIMP.

Пример: mybuntu_splash.pcx

LiveCD Text Color - цвет текста в меню установки (у меня меню
окажется на светлом фоне, поэтому я выбрал черный цвет, не переживайте
по поводу нижнего меню или подсветки выбора опций меню - программа
умная и создаст сама нужную цветовую гамму, потом увидите сами).

Upsplash Filename - когда будет происходить загрузка, будет показан
логотип и бегунок. Этот файл представляет из себя скомпилированный .so
файл библиотеки.

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

Поэтому нам интересна следующая опция - Upsplash Generation, она
позволит из .png файла, который можно создать в GIMP создать
собственный upsplash.so (Внимание: у картинки должна быть
индексированная палитра в 256 цветов!).

Я подкинул генератору вот этот файл.

и сохранил результат как mybuntu.so, который и указал затем в Upsplash Filename.

Обратите внимание, я создал файл с разрешением 640×480 - на базе
моей .pcx картинки, и из-за этого произойдет смещение бегунка в нижний
правый угол (там где я разместил надпись “загрузка” и окно для
бегунка), чтобы бегунок был в центре экрана, вам будет нужно создать
файл с разрешением 800×600.

2. Gnome (оформление среды Gnome).

::: Login :::

GDM Theme - оформление темы входа в систему. Когда вы установите
дистрибутив приглашение на вход может быть оформлено стандартными
темами (выпадающий список), либо скачайте понравившуюся тему отсюда и укажите ее файл, чтобы она попала в список. Я выбрал тему Mint-Shadows.
Кстати, файлы тем идут в архивах tar.gz их можно распаковать,
локализовать и переделать под свой вкус, подробные руководства для
создания своих тем есть на офсайте, т.е. здесь.

Далее, идут три окошка: Sounds - запретить/разрешить проигрывание
звука входа в систему; Root Login - разрешить/запретить вход в систему
под суперпользователем; XDMCP разрешить/запретить вход в систему
автономным дисплеем;

Splash Screen - после входа в систему, GNOME начинает прогружаться и
выбрасывает иконки отражающие стадии загрузки, этот Spash Screen нужен
для того чтобы эти иконки отображались на его красивом фоне.
Я не стал его менять.

Background Color - цвет фона. Я поставил черный.

::: Desktop :::

Wallpaper - обои, которые будут идти по умолчанию. Я подкинул эти.

Application Font, Document Font, Desktop Font, Title Bar Font, Fixed
Font - дают вам возможность выбрать шрифты для вашего дистрибутива.

::: Theme :::

Theme - выбор темы оформления, я выбрал Murrina-GreenMod.

Widow Borders - оформление рамок окон.

Icons - выбор иконок, я скачал GNUtoon - прикольный набор веселых иконок.

3. Apt (настройка списка репозиториев).

Если отметить чекбоксы галочками, вы замените официальные репозитории Ubuntu на свои.

Свои можно вносить в окно в известной вам форме, там есть пример:

deb http://адрес сервера/ версия_системы main restricted и т.п.

У меня нет своих репозиториев, хотя и есть список стороних, я ничего не менял во вкладке Apt.

4. Optimization (оптимизация!).

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

Startup - оптимизировать скорость загрузки системы и Shutdown - оптимизировать скрипты завершения работы.

Я включил только опцию Shutdown, поскольку там есть кнопка Restore - откат. Если будут глюки верну настройки обратно.

5. LiveCD.

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

6. Modules.

Вот тут-то начинается самое интересное, поскольку здесь вы можете
набить свой дистрибутив нужными вам пакетами, обновить имеющиеся или
удалить ненужные. Кроме того, можно добавлять и активировать сторонние
или свои модули (хотите запуск Emerald сразу при загрузке?).

Обратите внимание, перечислять пакеты для установки/удаления надо через пробел - пакет1 пакет2 пакет3.

Ну и конечно вам необходимо знать как именно называется устанавливаемый/удаляемый пакет.

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

Теперь, после того, как вы оформили свой дистрибутив и снабдили его
нужными программами, надо нажать кнопку “Apply”, чтобы применить
сделанные вами изменения.

После применения изменений нажмите Next.

Появится финальное окно, после которого начнется сборка вашего iso образа.

Здесь ничего трогать не стоит, разве что можете указать имя файла
(FileName), и описание дистрибутива (Description), уточнить выбор
архитектуры (я использовал x86, поэтому ничего не менял).

Next. Понеслось. Ждем 10-15 минут.

Все сборка завершена, можно закрыть программу или прожечь свой диск, но не торопитесь. Его еще надо немного доработать!

Теперь мы воспользуемся Ubuntu Customization Kit (UCK), он был установлен в Приложения/Стандартные.

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

Потом он спросит - какой язык должен использоваться при инсталляции системы, выбирайте ru.

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

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

После этого он предложит возможность переименовать ваш дистрибутив,
если вы не сделали этого в Reconstructor-e можете сделать это сейчас.

После этого он спросит вас: Не хотите ли ручками добавить/удалить
пакеты, воспользоваться консолью и вообще проконтролировать процесс
сборки?

Мы уже сделали это в Reconstructor-e, поэтому говорим - no.

Теперь он спросит - хотите удалить приложения для Windows с диска? Я
сказал - yes. Это удалит win32 версию Mozill-ы, и еще кое-что, что нам
не нужно. Зато размер iso уменьшится.

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

В процессе сборки (10-15 минут) он полезет в репозиторий, чтобы
установить языковую локализацию для вашего Gnome и его программ, а так
же уберет неиспользуемые языковые пакеты.

Собранный iso дистрибутива будет лежать здесь:

/home/ваша_домашняя_папка/tmp/remaster-new-files/

Вот что у меня получилось:

Установка.

Загрузка.

Сессия.

Вот и все :)

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

Послесловие:

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

Конечно представленный здесь материал - лишь основы создания своих
дистрибутивов на базе Ubuntu. Ведь существует множество тонких моментов
по наполнению дистрибутива и оптимизации ядра под разные задачи.

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

И тогда мы подумали над альтернативным применением этого материала:

1. Подарок другу-линуксоиду.

У вас есть друг который работает в Ubuntu? Узнайте какие программы
он использует и создайте для него красивый персональный
русифицированный дистрибутив. Подберите соответствующую тему, иконки,
обои. И подарите его на ближайший праздник (23 февраля, день рождения,
день админа или пятничный пивной саммит).

Дарите с серьезным лицом и словами вроде: “Поздравляю тебя, я тут
Марку Шаттлворту позвонил, попросил создать для тебя убунтовый
персональный дистрибутив. Марк сказал - сделаем, и вот сегодня пришел
по почте, дарю с наилучшими пожеланиями!”

Поверьте, ваш друг просто обалдеет от такого подарка!

2. Розыгрыш (например на первое апреля).

Тут мы долго веселились представляя себе линуксы оформленные в
стилях “Blondinko Edition” - гламурно-розовенько-стразовый, с обоями
Ксюши Собчак; или суровый патриотический дистриб “Putin Edition” - с
фотографией президента.

Примените фантазию. Все в ваших руках. Творите!

За сим откланиваюсь, надо срочно собрать забавный дистрибутив для своих друзей, пока они не прочитали эту статью…

Источник: http://whylinux.ru/2008/01/23/chto-nam-stoit-distr-postroit-legkoe-sozdanie-svoego-distributiva-ubuntu/

Администратор сайта OpenEmbedded.ru любезно предоставил интереснейшую статью о том, как собрать свой собственный дистрибутив Embedded Linux на базе OpenEmbedded. Судя по качеству материала, проект OpenEmbedded.ru может быть очень интересен разработчикам, использующим Embedded Linux для построения решений.

Практически у всех программистов первой программой была Hello, world! Она говорила - Здравствуй, мир! и завершалась. Первый дистрибутив на базе OpenEmbedded будет делать то же самое. Но для этого придется немного попотеть, потребуется следующее:

  • Компьютер с установленным дистрибутивом Linux Ubuntu.
  • Желание установить и умение читать.
  • Интернет канал, желательно безлимитный.

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

1.sudo apt-get install make gcc g++ ccache sed wget cvs \
2.subversion git-core git coreutils unzip texi2html texinfo \
3.libsdl1.2-dev docbook-utils gawk python-pysqlite2 \
4.diffstat help2man libxml2-utils xmlto \
5.python-psyco

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

Как только все программы установятся, cоздаем каталог для опытов и переходим в нее:

1.exit
2.mkdir -p ~/stuff/build/conf
3.cd ~/stuff

Далее установливаем bitbake. Для этого с сайта bitbake скачиваем и распаковываем последний релиз:

1.wget http://download.berlios.de/bitbake/bitbake-1.8.12.tar.gz
2.tar -xzvf bitbake-1.8.12.tar.gz
3.mv bitbake-1.8.12 bitbake

Следующим шагом идет получение репозитория OpenEmbedded. Для его получения запускаем:

1.git clone git://git.openembedded.net/openembedded

Если вдруг доступен только http (злые админы закрыли интернеты) то пробуем получить его через http:

1.git clone http://repo.or.cz/r/openembedded.git

Note:

В дальнейшем для обновления репозитария будет достаточно перейти в каталог stuff/openembedded:

1.cd ~/stuff/openembedded
2.git pull

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

1.cd ~/stuff/
2.cp openembedded/conf/local.conf.sample build/conf/local.conf

Далее откройте файл в редакторе и измените значения следующих переменных:

1.BBFILES = "${HOME}/stuff/openembedded/packages/*/*.bb"
2.DL_DIR = "${HOME}/stuff/sources"
3.DISTRO = "angstrom-2008.1"
4.MACHINE = "x86"

А в конце файла удалите строку:

1.REMOVE_THIS_LINE

сохраните файл.
Теперь необходимо настроить окружение. Сначала указываем где у нас находится bitbake

1.export PATH=${PATH}:${HOME}/stuff/bitbake/bin

затем указываем bitbake где искать репозиторий и файл конфигурации

1.export BBPATH=${HOME}/stuff/build:${HOME}/stuff/openembedded

И наконец запускаем сборку hello world:

1.bitbake helloworld-image

Если в результате запуска появилось нечто такое:

01.NOTE: Handling BitBake files: / (6291/6291) [100 %]
02.NOTE: Parsing finished. 6027 cached, 0 parsed, 264 skipped, 0 masked.
03.NOTE: build 200812252310: started
04.
05.OE Build Configuration:
06.BB_VERSION = "1.8.10"
07.METADATA_BRANCH = "org.openembedded.dev"
08.METADATA_REVISION = "5b1ed09b1ab1a60a28a76e4658bc9957cd361b5d"
09.TARGET_ARCH = "i486"
10.TARGET_OS = "linux"
11.MACHINE = "x86"
12.DISTRO = "angstrom"
13.DISTRO_VERSION = "2008.1-test-20081225"
14.TARGET_FPU = ""
15.
16.NOTE: Resolving any missing task queue dependencies
17.NOTE: Preparing runqueue
18.NOTE: Executing runqueue

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

Итак, сборка helloworld-image завершена. В результате при помощи OpenEmbedded был собран helloworld и создан образ корневой файловой системы вместе с ним. Осталось только все это запустить, это довольно просто. Для начала устанавливаем Virtual Box:

1.sudo apt-get install virtualbox

Затем потребуется собрать модуль для virtualbox (возможно, вам не потребуется собирать модуль, так-как в исходных кодах он стал устанавливаться недавно)

1.sudo apt-get install module-assistant
2.sudo m-a prepare
3.sudo m-a a-i virtualbox-ose

и загрузить его

1.sudo modprobe vboxdrv

Note

Команда sudo m-a a-i virtualbox-ose может сообщить об неудачном завершении. Но на самом деле все что необходимо она выполнила. Если при этом у вас команда sudo modprobe vboxdrv не вывела никаких ошибок при выполнении, то значит все в порядке.

Затем добавляем его в автозагрузку. Для этого открываем /etc/modules и добавляем туда:

после чего сохраняем. Теперь при каждой загрузке этот модуль будет подгружаться сам. Осталось добавить себя в группу пользователей vboxusers, чтобы можно было работать с Virtualbox:

1.sudo adduser [your username] vboxusers

Note

Для вступления в силу изменений потребуется завершить сеанс и войти заново.

Теперь пробуем запустить Virtualbox (у меня находится в разделе стандартные). Если вы увидите нечто такое:

OpenEmbedded в VirtualBox

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

Для создания новой виртуальной машины нажимаем создать, далее в качестве имени вводим openembedded (на самом деле имя может быть любым, главное чтобы оно не содержало пробелов), в тип ОС указываем Linux 2.6, жмем далее до запроса о виртуальном диске. Тут так же жмем далее, когда выскакивает предупреждение о том, что у нас нет дисков, нажимайте продолжить пока они не потребуются. После этого выведется итог, там жмем готово.
В списках виртуальных машин должна появиться машина openembedded. Выделяем ее и жмем свойства, там выбираем пункт Общие и переключаемся с закладки Основные на закладку Дополнительно. Там меняем порядок загрузки таким образом, чтобы Сеть была включена и была в списке первой. Если что-то не понятно сверьтесь:

openembedded-create-virtualbox-machine

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

В качестве загрузчика будет использоваться pxelinux из состава syslinux. Устанавливаем его:

1.sudo apt-get install syslinux

Нужный нам файл pxelinux.0 находится в каталоге /usr/lib/syslinux. Для его установки переходим в каталог ~/.VirtualBox, создаем нем каталог TFTP и копируем туда pxelinux.0:

1.cd ~/.VirtualBox
2.mkdir TFTP
3.cp /usr/lib/syslinux/pxelinux.0 TFTP/openembedded.pxe

Note

Такое странное имя выбрано не спроста. Если вы вспомните называлась виртуальная машина, то заметите что оно совпадает с ее именем. Это необходимо из-за того что VirtualBox обладает встроенными средствами автоконфигурации и загрузки по сети. Для того чтобы он нашел загрузчик, он должен называться имя машины.pxe.

Теперь можно попробовать включить виртуальную машину. Выберите ее в списке и нажмите старт. Если в результате вывелось что-то похожее

OpenEmbedded в VirtualBox

значит VirtualBox нашел загрузчик и передал ему управление. Выключаем вируальную машину и переходим к сборке ядра. Для этого потребуется изменить локальную конфигурацию и один из файлов репозитория. Начнем с файла локальной конфигурации local.conf. Добавляем в него строку следующего вида:

1.FILESPATH =. "${TOPDIR}/conf/packages/${PN}/${MACHINE}:"

Затем изменяем файл base.bbclass. Он находится в каталоге ~/stuff/openembedded/classes. Открывываем его, ищем строку начинающуюся с:

удаляем.

Note

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

Создаем каталог в котором будет находится файл конфигурации ядра:

1.mkdir -p ~/stuff/build/conf/packages/linux/x86

Выкачиваем его:

1.cd ~/stuff/build/conf/packages/linux/x86
2.wget http://openembedded.ru/wp-content/uploads/2009/01/defconfig

Далее собираем ядро. Для этого переходим в каталог ~/stuff/build и запускаем сборку ядра:

1.cd ~/stuff/build
2.export BBPATH="$HOME/stuff/build:$HOME/stuff/openembedded"
3.bitbake virtual/kernel

Сборка займет где-то полчаса-час в зависимости от мощности вашего компьютера. После ее завершения потребуется скопировать ядро в каталог ~/.VirtualBox/TFT, чтобы его смог найти загрузчик. Далее настроить загрузчик, так чтобы он грузил ядро и настроить NFS сервер, чтобы ядро смогло подключить корневую файловую систему. Начнем с ядра.

Ядро находится в каталоге ~/stuff/build/tmp/deploy/glibc/images/x86 и называется bzImage-x86.bin. Копируем его в ~/.VirtualBox/TFTP:

1.cd ~/.VirtualBox/TFTP
2.cp ~/stuff/build/tmp/deploy/glibc/images/x86/bzImage-x86.bin bzImage

Переходим к настройке загрузчика. Создаем каталог pxelinux.cfg (в нем загрузчик ищет файлы конфигурации):

1.mkdir ~/.VirtualBox/TFTP/pxelinux.cfg
2.cd ~/.VirtualBox/TFTP/pxelinux.cfg

Далее создаем файл конфигурации default следующего содержания:

1.prompt 0
2.default linux
3.timeout 5
4.
5.label linux
6.kernel bzImage
7.append ip=dhcp root=/dev/nfs nfsroot=192.168.1.100:/var/lib/nfsroot

При этом:

  • 192.168.1.100 это ваш ip адрес (который настроен на вашем компьютере автоматически или в ручную)
  • /var/lib/nfsroot указывает где находится необходимая нам корневая файловая система.

Если вы сейчас попробуете загрузить виртуальную машину, то загрузчик найдет ядро и загрузит его. Ядро запустится, но не найдет корневую файловую систему и перейдет в kernel panic. Чтобы избежать этого необходимо установить и настроить nfs сервер.
Для установки запускаем команду:

1.sudo apt-get install nfs-kernel-server

затем настраиваем экспорт каталога, где будет находиться корневая файловая система, в /etc/exports. Для этого в файл exports требуется добавить строку следующего вида:

1./var/lib/nfsroot *(ro,insecure,all_squash,no_subtree_check)

В качестве каталога для корневой файловой системы я выбрал /var/lib/nfsroot. Его требуется создать и распаковать туда корневую файловую систему. Сделать это можно следующим образом:

1.sudo mkdir /var/lib/nfsroot
2.cd /var/lib/nfsroot
3.sudo tar -xvf ~/stuff/build/tmp/deploy/glibc/images/x86/helloworld-image-x86.tar

В результате каталог /var/lib/nfsroot будет содержать корневую файловую систему. Проверить все ли в порядке можно при помощи следующей команды:

1.$ ls -l
2.итого 4
3.drwxr-xr-x 2 root root 17 Дек 31 00:50 bin
4.drwxr-xr-x 2 root root 4096 Дек 31 00:50 dev
5.drwxr-xr-x 3 root root 42 Дек 31 00:50 etc
6.drwxr-xr-x 4 root root 26 Дек 31 00:50 usr

Если вы получили аналогичный вывод значит все в порядке.
Запускаем nfs сервер:

1.sudo /etc/init.d/nfs-kernel-server start

Теперь сновая запускаем виртуальную машину. После того как она включится, должен будет запустится загрузчик, затем он запустит ядро, а ядро подключит по nfs корневую файловую систему и запустит /bin/init который является символической ссылкой на программу helloworld. И в результате вы должны увидеть вот такую картину:

OpenEmbedded в VirtualBox - Hello World

Если вы ее видите, то поздравляю вас. Вы собрали первый дистрибутив на базе OpenEmbedded!
А в следующий раз я расскажу как собрать систему состояющую не только из helloworld.

PS: Оригинальные версии использованных материалов: Здравствуй, Мир! Сборка, Здравствуй, Мир! Запуск.

PPS: defconfig файл можно скачать еще здесь.