openSUSE:Paketbau Richtlinien für mehrere Versionen

Wechseln zu: Navigation, Suche
Auch wenn es das Standardverhalten von RPM ist, ein einfaches Paket auf die höchste Version zu aktualisieren, ist es für verschiedene Programme möglich, die gleichen oder ähnliche Funktionen auszuführen, um auf einem einzelnen System zur gleichen Zeit installiert zu werden.

Zum Beispiel haben viele Systeme mehrere Texteditoren gleichzeitig installiert. Das bietet eine Auswahlmöglichkeit für die Benutzer eines Systems, wenn gewünscht. Aber es macht es schwierig für ein Programm, eine gute Auswahl zu treffen, einen Editor aufzurufen, wenn der Benutzer seine Vorzüge nicht spezifiziert hat. Darum sollten einige Standards definiert werden, so dass Programme auf den gleichen Standard zurückfallen können.

Wartung von Standardkommandos und Bibliotheken

Update-Alternatives

Das Aktualisierungs-alternative Paket erzeugt, löscht, wartet und zeigt eine Information über den symbolischen Link, die Alternativen im System beinhalten. Ein Paketbauer kann dieses Paket verwenden, um Standardanwendungen in einem laufenden System zu definieren, ohne mit anderen Paketen in Konflikt zu geraten.

Name:                vim
[...]
BuildRequires:  update-alternatives
PreReq:              update-alternatives
[...]
%install
# erzeugt ein Dummy-Ziel für  /etc/alternatives/vim
mkdir -p %{buildroot}%{_sysconfdir}/alternatives
ln -s -f %{_sysconfdir}/alternatives/vim %{buildroot}/bin/vim
[...]
%post
%{_sbindir}/update-alternatives --install \
   /bin/vim        vim  /bin/vim-normal          15
[...]
%post enhanced
 %{_sbindir}/update-alternatives --install \
   /bin/vim        vim  %{_bindir}/vim-enhanced  20
[...]
%preun
if [ "$1" = 0 ] ; then
   %{_sbindir}/update-alternatives --remove vim /bin/vim-normal
fi
[...]
%preun enhanced
if [ "$1" = 0 ] ; then
   %{_sbindir}/update-alternatives --remove vim %{_bindir}/vim-enhanced
fi
[...]
%files
%defattr(-,root,root,-)
%{_bindir}/vim
%ghost %{_sysconfdir}/alternatives/vim
[...]
%files enhanced
%defattr(-,root,root,-)
%{_bindir}/vim-enhanced