Создание пакета rpm, который распаковывает файл - PullRequest
0 голосов
/ 30 сентября 2019

Я хотел бы создать пакет rpm, который выполняет следующие действия:

При установке:

  1. копирует скрипт в rpm

  2. распаковывает файл в об / мин

При запуске:

  1. работает script.sh

  2. запускает install файл, который извлекается в rpm

Когда пользователь запускает rpm, он должен выполнить 2 и 3, поскольку файлы уже существуют в rpm.

Я знаю, как выполнить настройку, файл * .spec:

%description
# lets skip this for now

%prep
# lets skip this for now

%build
# lets skip this for now

%install
cd ${RPM_BUILD_ROOT}
cp -v /home/methuselah/script.sh ${RPM_BUILD_ROOT}
tar xvpf /home/methuselah/bin.tar
chmod 775 -R ${RPM_BUILD_ROOT}/*

%files
/*

%changelog
* Tue Jan 28 2014 Pavel Šimerda  - 3.0.9-14
- Resolves: #1052814 - rsync command is terminated with SIGSEGV
- Resolves: #1052814 - add missing patch file

Я не уверен, куда поместить фактические шаги установки, которые выполняются при выполнении rpm. Не могли бы вы помочь с этим?

Ответы [ 2 ]

3 голосов
/ 30 сентября 2019

раздел %install предназначен для установки файлов во время процесса rpm build в корне rpm build . Эта часть не запускается во время установки на целевой машине. Это запутанная часть spec файлов.

Во время сборки rpm (в таком порядке):

  • % prep
  • % build
  • % install
  • % check

во время установки rpm (в таком порядке):

  • % pre
  • (реальная установка: установлены файлы из раздела %files)
  • % post

ПРИМЕЧАНИЕ: эта страница в полном порядке rpm-скриптов

еще несколько замечаний:

  • два rpm s не могут иметь один и тот же файл / папку, поэтому убедитесь, что вы не упаковываете /home, /usr иличто-то в этом роде (при указании /* в %files вы упаковываете целое дерево)
  • не упаковывайте файлы в каталог /home пользователя. Пакеты устанавливаются в масштабе всей системы, поэтому упаковывайте только файлы в общие каталоги, такие как /etc, /usr, ...
1 голос
/ 30 сентября 2019

Может быть, вы хотите поместить свои файлы (script.sh и bin.tar) в раздел «% files» и оставить все установки с% install.

Взгляните здесь и, возможно, здесь для получения дополнительной информации.

Я не уверен, куда поместить фактические шаги установки, которые выполняются при выполнении rpm. Не могли бы вы помочь с этим?

Я думаю, что эта ссылка может вам помочь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...