Назад | Перейти на главную страницу

Rpmbuild изменяет текущий каталог

Из-за того, что не удалось создать RPM с использованием некоторого файла спецификации, который отлично работает для других пользователей, я обнаружил, что он по какой-то причине меняет текущий каталог на rpmbuild / BUILD:

+ umask 022
+ cd /home/dev1/rpmbuild/BUILD
+ LANG=C
+ export LANG
+ unset DISPLAY

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

Я дважды проверил свой .rpmmacros, и единственная запись - это каталог topdir, указывающий на каталог rpmbuild.

Файл SPEC:

Summary: core package
Name: core
Version: 2
Release: 1
Group: Applications
License: Commercial
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)

%description
Core package

%prep

%build

%install
rm -rf $RPM_BUILD_ROOT
mkdir -p $RPM_BUILD_ROOT/Core
mkdir -p $RPM_BUILD_ROOT/Core/etc
install -m 755 dist/Core.jar $RPM_BUILD_ROOT/Core/
install -m 755 dist/launch.sh    $RPM_BUILD_ROOT/Core/
install -m 755 dist/etc/configuration.conf $RPM_BUILD_ROOT/Core/etc/

%clean
rm -rf $RPM_BUILD_ROOT

%files
%defattr(-,root,root)
/Core/Core.jar
/Core/launch.sh
%config(noreplace) /Core/etc/configuration.conf

%preun
mv /Core/etc/configuration.conf /Core/etc/configuration.conf.bak

%postun
rm -f /Core/Core.jar
rm -f /Core/launch.sh

Есть идеи, что может заставить rpmbuild переключить текущий каталог?

Спасибо!

topdir в .rpmmacros указывает, где должно быть создано ваше программное обеспечение, rpmbuild рекомендует создавать ваши программы в отдельном каталоге, чтобы избежать пересечения потоков с живыми файлами, что обычно является хорошим поведением.

Если вы хотите удалить это поведение, просто удалите topdir из .rpmmacros хотя я этого не рекомендую.

Возможно, файл SPEC зависит от какой-то переменной окружения, которая не установлена ​​в вашем пользователе, но установлена ​​для других, вы должны сравнить и посмотреть, так ли это, если да, добавьте эту переменную env в файл SPEC.

Одним словом, я думаю, что SPEC виноват в том, что почему-то не хватает этого, если вы вставите SPEC сюда, я могу посмотреть и попытаться найти проблему для вас