Deus
YouTube ¦ Статьи ¦ Обзоры игр ¦ Ссылки ¦ Архив файлов

Статьи
  1. Deus stat - скрипт сбора статистики по трафику
  2. Установка сервера Apache на FreeBSD
  3. Как создать сервер Team Fortress 2
  4. Как создать сервер Counter-Strike:Source
  5. Русификация Slackware 11.0
  6. Установка Postfix c Cyrus IMAP
  7. NAT на базе natd/ipfw во FreeBSD
  8. NAT на базе iptables в Linux
  9. Как установить Linux через PXE
  10. Создание своего rpm
  11. Консоль через COM-порт для FreeBSD
  12. Как смонтировать usb-flash в качестве swap
  13. АТС NEC NEAX 2000 IPS
  14. Семейство протоколов TCP/IP
  15. Сетевые технологии
  16. Как отсортировать IP-адреса в Excel’e
  17. Сканер Mustek Bear Paw 1200CU Plus в Linux
  18. Схема электроразводки популярных гитар
  19. Микрофонный предусилитель
  20. Как подключить электрогитару к компьютеру
  21. Мои гитары
  22. Баллада о ZooM’e
Обзоры игр
  1. Портативная игростанция (PSP). Продолжение
  2. Тишина нарушена. Обзор серии Silent Hill
  3. Портативная игростанция (PSP)
  4. Speccy навсегда
Ссылки
  1. Различные ресурсы Интернет
  2. Мои работы
Файлы
  1. Архив файлов

    

Создание своего собственного бинарного пакета rpm из исходников

    Пример на базе openSUSE 10.3. Перед построением rpm рекомендую собрать программу с префиксом вида /root/program, для того, что бы убедится в том, что сборка происходит успешно, и для того, что бы можно было легко составить список файлов.
Специально для построения своих бинарных пакетов и пакетов с исходным кодом в системе существует папка /usr/src/packages, внутри которой заготовлены папки с названиями, соответствующими назначению:
BUILD
RPMS
SOURCES
SPECS
SRPMS
  1. Помещаем исходник в папку SOURCES, в данном случае beep-media-player-0.9.7.1.tar.gz
  2. В папке SPECS создаем скрипт сборки пакета beep-media-player-0.9.7.1-1.spec, название этого файла складывается из названия исходника и через тире номер версии самого пакета.
  3. Заполняем spec-файл. Вот примерное содержание с комментариями:
  4. # Заголовок.
    # Важно что бы Source точно указывал на название исходников.
    # Group выбирается из стандартных.
    Summary: A Music Player
    Name: beep-media-player
    Version: 0.9.7.1
    Release: 1
    URL: http://sourceforge.net/projects/beepmp
    License: GPL
    Group: Productivity/Multimedia/Sound/Players
    Source: beep-media-player-0.9.7.1.tar.gz
    Distribution: openSUSE 10.3 (i586)

    %description
    The Beep Media Player (BMP) was a free audio player, based on the XMMS multimedia player.
    The BMP is mainly a port of XMMS to GTK+ 2 and, as such,
    integrates better with the look and feel of more recent versions of the GNOME, Xfce.
    Like XMMS, BMP looks like Winamp and even supports Winamp and XMMS skins.

    # Фаза подготовки исходников.
    # Макрос setup -q выполняет распаковку в папку BUILD с последующей командой cd внутрь.
    # Тут же идет традиционное ./configure
    %prep
    %setup -q
    ./configure --prefix=/usr --mandir=/usr/share/man --enable-gconf --enable-gnome-vfs

    # Фаза компиляции. Стандартный make
    %build
    make RPM_OPT_FLAGS="$RPM_OPT_FLAGS"

    # Фаза установки. Стандартный make install.
    # После него все, что до этого собиралось, окажется в системе.
    %install
    make install

    # Фаза очистки. Распакованные исходники будут удалены.
    %clean
    rm -rf *

    # Описание содержания пакета.
    # Это самый важный момент, так как в бинарный пакет попадет только то, что здесь отмечено.
    %files
    %defattr(-,root,root)
    %doc README AUTHORS COPYING ChangeLog

    /usr/bin/beep-media-player
    /usr/include/bmp/beepctrl.h
    /usr/include/bmp/configdb.h
    /usr/include/bmp/configfile.h
    /usr/include/bmp/dirbrowser.h
    /usr/include/bmp/formatter.h
    /usr/include/bmp/fullscreen.h
    /usr/include/bmp/plugin.h
    /usr/include/bmp/rcfile.h
    /usr/include/bmp/titlestring.h
    /usr/include/bmp/util.h
    /usr/include/bmp/vfs.h
    /usr/lib/bmp/Input/libcdaudio.la
    /usr/lib/bmp/Input/libcdaudio.so
    /usr/lib/bmp/Input/libmpg123.la
    /usr/lib/bmp/Input/libmpg123.so
    /usr/lib/bmp/Input/libvorbis.la
    /usr/lib/bmp/Input/libvorbis.so
    /usr/lib/bmp/Input/libwav.la
    /usr/lib/bmp/Input/libwav.so
    /usr/lib/bmp/Output/libALSA.la
    /usr/lib/bmp/Output/libALSA.so
    /usr/lib/bmp/Output/libesdout.la
    /usr/lib/bmp/Output/libesdout.so
    /usr/lib/bmp/Output/libOSS.la
    /usr/lib/bmp/Output/libOSS.so
    /usr/lib/bmp/Visualization/libbscope.la
    /usr/lib/bmp/Visualization/libbscope.so
    /usr/lib/libbeep.la
    /usr/lib/libbeep.so.2.0.0
    /usr/lib/pkgconfig/bmp.pc
    /usr/share/man/man1/beep-media-player.1.gz
    /usr/share/applications/bmp.desktop
    /usr/share/bmp/glade/addfiles.glade
    /usr/share/bmp/glade/prefswin.glade
    /usr/share/bmp/images/appearance.png
    /usr/share/bmp/images/eq.png
    /usr/share/bmp/images/mouse.png
    /usr/share/bmp/images/playlist.png
    /usr/share/bmp/images/plugins.png
    /usr/share/bmp/Skins/Default/balance.bmp
    /usr/share/bmp/Skins/Default/cbuttons.bmp
    /usr/share/bmp/Skins/Default/eq_ex.bmp
    /usr/share/bmp/Skins/Default/eqmain.bmp
    /usr/share/bmp/Skins/Default/main.bmp
    /usr/share/bmp/Skins/Default/monoster.bmp
    /usr/share/bmp/Skins/Default/nums_ex.bmp
    /usr/share/bmp/Skins/Default/playpaus.bmp
    /usr/share/bmp/Skins/Default/pledit.bmp
    /usr/share/bmp/Skins/Default/pledit.txt
    /usr/share/bmp/Skins/Default/posbar.bmp
    /usr/share/bmp/Skins/Default/README
    /usr/share/bmp/Skins/Default/shufrep.bmp
    /usr/share/bmp/Skins/Default/text.bmp
    /usr/share/bmp/Skins/Default/titlebar.bmp
    /usr/share/bmp/Skins/Default/viscolor.txt
    /usr/share/bmp/Skins/Default/volume.bmp
    /usr/share/locale/br/LC_MESSAGES/bmp.mo
    /usr/share/locale/cs/LC_MESSAGES/bmp.mo
    /usr/share/locale/cy/LC_MESSAGES/bmp.mo
    /usr/share/locale/de/LC_MESSAGES/bmp.mo
    /usr/share/locale/el/LC_MESSAGES/bmp.mo
    /usr/share/locale/es/LC_MESSAGES/bmp.mo
    /usr/share/locale/fi/LC_MESSAGES/bmp.mo
    /usr/share/locale/fr/LC_MESSAGES/bmp.mo
    /usr/share/locale/hi/LC_MESSAGES/bmp.mo
    /usr/share/locale/hu/LC_MESSAGES/bmp.mo
    /usr/share/locale/it/LC_MESSAGES/bmp.mo
    /usr/share/locale/ja/LC_MESSAGES/bmp.mo
    /usr/share/locale/ka/LC_MESSAGES/bmp.mo
    /usr/share/locale/ko/LC_MESSAGES/bmp.mo
    /usr/share/locale/lt/LC_MESSAGES/bmp.mo
    /usr/share/locale/mk/LC_MESSAGES/bmp.mo
    /usr/share/locale/nl/LC_MESSAGES/bmp.mo
    /usr/share/locale/pl/LC_MESSAGES/bmp.mo
    /usr/share/locale/pt_BR/LC_MESSAGES/bmp.mo
    /usr/share/locale/ro/LC_MESSAGES/bmp.mo
    /usr/share/locale/ru/LC_MESSAGES/bmp.mo
    /usr/share/locale/sk/LC_MESSAGES/bmp.mo
    /usr/share/locale/sv/LC_MESSAGES/bmp.mo
    /usr/share/locale/uk/LC_MESSAGES/bmp.mo
    /usr/share/locale/zh_CN/LC_MESSAGES/bmp.mo
    /usr/share/locale/zh_TW/LC_MESSAGES/bmp.mo
    /usr/share/pixmaps/bmp.png

    # Просто заметки
    %changelog
    * Mon May 5 2008 Deus
    - 1-й пробный бинарный билд rpm-пакета.

  5. Переходим в папку SPECS и собираем все командой:
    rpmbuild -bb beep-media-player-0.9.7.1-1.spec
    Здесь ключ -bb говорит о том, что будет собран только бинарный пакет. Если нужен еще и пакет с исходниками, тогда следует указать ключ -ba.
  6. Готовый rpm должен появится в папке RPMS в соответсвующей вашей архитектуре подпапке.
Статья основана на этой информации.
Deus 7.05.2008



Opera!

Проект OpenNET

FreeBSD

Fedora Core 8


Посодействуй
ЯндексЯндекс. ДеньгиХочу такую же кнопку





[Главная] | [Я на YouTube] | [Статьи] | [Обзоры игр] | [Ссылки] | [Файлы] | [Обратная связь]
Этот сайт создан Deus'ом в марте - августе 2005 года.