В данном HOWTO мы подробно рассмотрим процесс ручной сборки RPM пакета для замечательного программистского редактора Sublime Text 3 для RPM based дистрибутивов GNU/Linux.
Введение
Данный редактор распространяется на официальном сайте в виде тарбола, который предлагается распаковывать в домашний каталог.
Устанавливать «в лоб» в пакетных дистрибутивах категорически не рекомендуется, т.к. это превращает систему в Slackware. Официальный RPM пакет на сайте собран неправильно с нарушением гайдлайнов современных дистрибутивов, поэтому соберём свой собственный.
Установленная с помощью RPM пакета программа будет доступна для всех пользователей системы.
Шаг 1. Подготовка к сборке
Установим в систему утилиты Git, spectool, а также средство для сборки RPM-пакетов — rpmbuild.
Установим требуемые пакеты в Fedora/CentOS/RHEL:
sudo dnf -y install git rpm-build spectool
В openSUSE:
sudo zypper install git rpmbuild spectool
Шаг 2. Загрузка исходников для пакета
Загрузим исходники SPEC-файла для сборки пакета из Git репозитория:
git clone https://github.com/RussianFedora/sublime_text.git sublime_text
Шаг 3. Загрузка архивов с Sublime Text
Воспользуемся утилитой spectool для простого и быстрого скачивания тарболов с приложением:
cd sublime_text rpmdev-setuptree spectool -g -R sublime_text.spec
Шаг 4. Сборка RPM пакета
Запустим сборку RPM пакета:
rpmbuild -bb sublime_text.spec
Шаг 5. Установка собранного пакета
Установим результат сборки в Fedora/CentOS/RHEL:
sudo dnf install ~/rpmbuild/RPMS/$(uname -m)/sublime_text*.rpm
В openSUSE:
sudo zypper install ~/rpmbuild/RPMS/$(uname -m)/sublime_text*.rpm
Заключение
Сразу после установки ярлык приложения появится в меню используемой рабочей среды.
Спасибо за интересную статью.
К сожалению, установка пакета требует libffi.so.5, которую найти не представляется возможным.
Поскажите, что делать…
П.С. Я пользуюсь openSUSE 12.3 архитектура AMD.
Скачайте SPEC-файл, откройте его любым текстовым редактором (vim, mcedit, kwrite и т.д.) и закомментируйте или удалите строку 28. После этого соберите пакет отредактированным спеком.
@Vitaly
Спасибо, помогло!
П.С. А как можно добавить иконку в список аппликаций? Я тут прикрепил скриншот с вышеупомянутым дефектом:
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:
@Vitaly Спасибо большое!
@KT
spectool, действительно, удобная утилита. С ней всё гораздо быстрее. Благодарю за подсказку!
Статья была доработана и обновлена в соответствие с новыми гайдлайнами дистрибутивов.