Перейти до змісту
View in the app

A better way to browse. Learn more.

Файна Україна

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Як створити свій простий RPM пакет

Рекомендовані відповіді

Опубліковано
  • Адміністратор

Що таке RPM взагалі?

Допустимо, є файл wood.png , і його потрібно встановити /usr/share/wallpapers/ . Це робить файл RPM. Це такий архів, усередині якого створені папки "usr", у ній - "share", у ній - "wallpapers", у ній - wood.png. При установці він копіює wood.png у /usr/share/wallpapers.

Підготуємо те, що упаковуватимемо

Пакувати можна що завгодно. Давайте для прикладу візьмемо просту програму мовою bash . Bash є у всіх (що ми вводимо в термінал, це насправді команди bash), він простий, тому візьмемо саме його. Вона виводитиме " Привіт з RPM, Пінгвінус! ". Напишемо її: створимо файл під назвою hello-pingvinus і вставимо туди ось цей текст:

#!/usr/bin/env bash
echo 'Привет из RPM, Пингвинус!'

Перший рядок каже, що треба запускати через bash, а другий друкує наш текст у консоль. Перевіримо:

  1. Зробимо файл виконуваним: chmod +x hello-pingvinus

  2. Запустимо: ./hello-pingvinus

У консолі побачимо висновок " Привіт із RPM, Пінгвінус! ". Після встановлення створеного за цією статтею пакета RPM можна буде вводити в термінал "hello-pingvinus" і отримувати даний висновок.

Створимо SPEC файл

Саме SPEC файл вказує як саме збирати RPM і містить інформацію про пакет. Створимо файл hello-pingvinus.spec. Про пункти поясню нижче.

Name: hello-pingvinus
Version: 1.0
Release: 1.opensuse
Summary: Prints a greeting to the console
Summary(ru):  Выводит в консоль приветствие
License: MIT
Source0: hello-pingvinus.tar
BuildArch: noarch
URL: https://pingvinus.ru
Requires: bash

%description
A simple program that prints "Привет из RPM, Пингвинус!" to the console.

%description -l ru
Простая программа, которая выводит "Привет из RPM, Пингвинус!" в консоль.

%prep
%setup -q -n hello-pingvinus

%install
mkdir -p %{buildroot}/usr/bin
cp hello-pingvinus %{buildroot}/usr/bin

%files
/usr/bin/hello-pingvinus
  1. Name  – ім'я пакета.

  2. Version  – версія програми.

  3. Release  — версія пакета RPM. Якщо програму (навіть із безліччю випусків за багаторічну історію) пакують у RPM вперше — ставлять одиницю. Після неї за бажанням можна поставити крапку та назву дистрибутива, особливо якщо є кілька RPM-файлів для різних дистрибутивів, щоб знати, де який.

  4. Summary  - короткий опис пакета в одну коротку пропозицію. Пишеться як правило англійською.

  5. Summary(ru)  - Summary російською мовою. Якщо у користувача російська локаль – він побачить саме його. Аналогічно можна й інших мов.

  6. License  – назва ліцензії Вашої програми. Наприклад MIT, GPLv2 тощо.

  7. Source0  - архів з якого будемо збирати програму. Поки не зважайте, він буде наступним пунктом.

  8. BuildArch  – архітектура Вашого пакету. Оскільки пакет, який містить лише просту bash-комманду, не залежить від конкретної архітектури на кшталт x86_64 або ARM, працюючи скрізь — ставимо noarch.

  9. URL  – посилання на сайт Вашої програми.

  10. Requires  – залежності. Для цього пакета можна було нічого не писати, оскільки bash є скрізь, але для більш складних програм тут вказуються залежності.

На цьому шапка скінчилася. Далі – секції.

  1. %description  - довгий опис, на відміну від короткого Summary. Можна різними мовами за прикладом російської.

  2. %setup  - розпаковує файли з архіву для якого в наступному пункті. -q  - не показує виведення розпакування архіву, -n -  прапор після якого ім'я папки в архіві, яка містить файли та головне, SPEC-файл.

  3. %prep  — підготовка до збирання RPM.

  4. %install  — Створення збірної папки з файлами. Потрібно знати, що щоб ввести в термінал наприклад "hello-pingvinus" або будь-яку іншу команду, треба, щоб у папці /usr/bin/ був файл з такою назвою. Тому створюємо ці папки і копіюємо наш файл з кодом «hello-pingvinus» туди.

  5. %files  — перераховує файли, які потрібно включити в RPM пакет. Якщо ми скопіювали в секції %install файл у збірну папку, але в секції %files він не перерахований - у RPM він не потрапить.

Створення TAR архіву

Найпростіший спосіб створити RPM - створити архів TAR, в якому одна головна папка (в даному випадку - hello-pingvinus), яка містить:

  1. SPEC файл,

  2. Файли програми (у разі — hello-pingvinus).

Робимо. Думаю писати як це зробити не треба – будь-який менеджер архівів із середовища робочого столу це вміє. Щоб перевірити – відкрийте менеджер архівів; якщо там папка "hello-pingvinus", а в ній два наші файли - все правильно. Якщо там одразу 2 файли (в корені архіву, а не в hello-pingvinus - неправильно).

Упаковка в RPM

Настав час нарешті створити RPM. Встановимо утиліту rpmbuild (шукаємо в репозиторії) та вводимо в термінал наступну команду:

rpmbuild -tb hello-pingvinus.tar --define "_topdir $PWD"

На виході отримаємо наш файл RPM. Він має бути у папці RPMS/noarch/. Пробуємо встановити. Можна через графічний інтерфейс, а можна і через dnf чи zypper:

  1. dnf : sudo dnf install./hello-pingvinus-1.0-1.opensuse.noarch.rpm

  2. zypper : sudo zypper install ./hello-pingvinus-1.0-1.opensuse.noarch.rpm

Якщо все успішно встановилося, при введенні в консоль hello-pingvinus отримаємо " Привіт із RPM, Пінгвінус! ".

Для публікації повідомлень створіть обліковий запис або авторизуйтесь

Акаунт

Навігація

Пошук

Пошук

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.