В данном HOWTO мы подробно рассмотрим процесс ручной сборки RPM пакета для замечательного программистского редактора Sublime Text 3 для RPM based дистрибутивов GNU/Linux.
Введение
Данный редактор распространяется на официальном сайте только в виде тарбола и его предлагается распаковывать в домашний каталог. Если же у вас (как и у меня) домашний каталог смонтирован с флагом noexec, запрещающем исполнение, то единственный способ использовать редактор — установить его в систему.
Устанавливать «в лоб» в пакетных дистрибутивах категорически не рекомендуется, т.к. это превращает систему в Slackware. Именно поэтому мы соберём и установим RPM пакет.
Установленная с помощью RPM пакета программа будет доступна для всех пользователей системы.
Шаг 1. Загрузка архива с приложением
Загрузите последнюю версию программы с её официального сайта для используемой вами платформы (поддерживаются x86 (i686) и x86_64).
Шаг 2. Подготовка к сборке
Установите в систему средство сборки RPM-пакетов — rpmbuild (в openSUSE пакет так и называется rpmbuild, а в Fedora/CentOS/RHEL — rpm-build). Для установки rpmbuild в систему на Fedora/CentOS/RHEL выполните:
sudo dnf -y install rpm-build spectool
На openSUSE:
sudo zypper install rpmbuild
Скопируйте распакованный на шаге 2 архив с бинарниками в каталог, доступный утилите rpmbuild (пример показан для версии 3.0.3143 платформы x86_64):
cd ~ mkdir -p ~/rpmbuild/SOURCES/ cp -f "sublime_text_3_build_3143_x64.tar.bz2" ~/rpmbuild/SOURCES/
Загрузите файл со спецификациями для сборки пакета:
cd ~ wget https://github.com/RussianFedora/sublime_text/blob/master/sublime_text.spec
Шаг 3. Сборка пакета
В терминале выполните команду для запуска сборки:
rpmbuild -bb sublime_text.spec
В случае успеха в каталоге ~/rpmbuild/RPMS/i686/ (на 32-битных системах) или ~/rpmbuild/RPMS/x86_64/ (на 64-битных) вы получите собранный RPM пакет.
Шаг 4a. Установка пакета на i686 системах
Установите пакет в систему. На Fedora/CentOS/RHEL:
sudo dnf -y install ~/rpmbuild/RPMS/i686/sublime_text*
На openSUSE:
sudo zypper install ~/rpmbuild/RPMS/i686/sublime_text*.rpm
Шаг 4b. Установка пакета на x86_64 системах
Если у вас 64-разрядная система, выполните на Fedora/CentOS/RHEL:
sudo dnf -y install ~/rpmbuild/RPMS/x86_64/sublime_text*
На openSUSE:
sudo zypper install ~/rpmbuild/RPMS/x86_64/sublime_text*.rpm
Заключение
При сборке пакета rpmbuild загрузит из репозитория на GitHub и файл sublime_text.desktop, что обеспечит создание значка запуска программы Sublime Text 3 в большинстве десктопных сред.
Спасибо за интересную статью.
К сожалению, установка пакета требует libffi.so.5, которую найти не представляется возможным.
Поскажите, что делать…
П.С. Я пользуюсь openSUSE 12.3 архитектура AMD.
Скачайте SPEC-файл, откройте его любым текстовым редактором (vim, mcedit, kwrite и т.д.) и закомментируйте или удалите строку 28. После этого соберите пакет отредактированным спеком.
@V1TSK
Спасибо, помогло!
П.С. А как можно добавить иконку в список аппликаций? Я тут прикрепил скриншот с вышеупомянутым дефектом:
http://s8.postimg.org/tobh6bq79/snapshot1.png
Проверьте существование файла, прописанного в директиве Icon файла /usr/share/applications/sublimetext.desktop. В Fedora значок отображается корректно.
Всё на месте:
@Илья
Тогда непонятно почему значок не отображается. Возможно в openSUSE требуется, чтобы для каждого размера (128*128, 256*256, 64*64, 32*32) был указан свой значок. Если так, то их придётся генерировать вручную ибо в оригинальном архиве есть только 128*128.
Возможно следует создать SVG-иконку?
Тогда система сможет масштабировать ее по своему усмотрению. Я готов заняться этим, если RPM-пакеты поддерживают векторную графику.
@Илья
RPM’у всё равно. SVG поддерживается всеми современными DE.
Я посмотрел чужой *.desktop файл, и там иконка лежала в другом каталоге:
Icon=/usr/share/pixmaps/sublime.png
Возможно как раз расположение иконки имеет значение для DE ? Я попробую это сегодня вечером, дома…
Я нашел документ определяющий поведение DM касательно иконок:
h++p://standards.freedesktop.org/icon-theme-spec/icon-theme-spec-latest.html
>>>>Installing Application Icons
So, you’re an application author, and want to install application icons so that they work in the KDE and Gnome menus. Minimally you should install a 48×48 icon in the hicolor theme. This means installing a PNG file in $prefix/share/icons/hicolor/48×48/apps. Optionally you can install icons in different sizes. For example, installing a svg icon in $prefix/share/icons/hicolor/scalable/apps means most desktops will have one icon that works for all sizes.
Как вы думаете, это актуально в данной ситуации?
@Илья
Нет, мой SPEC заставляет Sublime Text 2 размещаться в /opt/, что единственно верно для ПО с закрытым исходным кодом, коим и является ST2.
Значок может располагаться в любом каталоге. Поддерживаются форматы PNG, SVG и ICO.
@Илья
Можете проверить, отредактировав файл /usr/share/applications/sublimetext.desktop и скопировав значок разных разрешений в указанные каталоги. В Fedora 17-18 (с KDE 4) работает из любого каталога.
Здравствуйте!
Очень полезная статья. Следовала инструкции для OpenSuse (у меня стоит OpenSUSE Leap 42.1)
Однако при установке выяснилось, что в файле спецификации прописана версия sublime 3.0.3114-2. На сайте же последняя доступная версия 3126. Полагаю, что именно поэтому возникает ошибка:
error: File ~/SOURCES/sublime_text_3_build_3114_x64.tar.bz2: No such file or directory
Подскажите, пожалуйста, что нужно поменять в файле? Только строку с %global revision 3114?
@Елена
Обновил SPEC в репозитории до актуальной версии. Можете собирать.
@Елена
Исходники можно качать не вручную, а при помощи утилиты spectool:
@V1TSK Спасибо большое!
@KT
spectool, действительно, удобная утилита. С ней всё гораздо быстрее. Благодарю за подсказку!