Dodaję niektóre źródła do istniejącego pliku rpm .spec
przez URL i nie mam ich jeszcze pobranych. Czy istnieje sposób, aby pobrać rpmbuild
, aby pobrać źródła zamiast robić to ręcznie?Jak uzyskać rpmbuild do pobrania wszystkich źródeł dla określonego .spec?
Odpowiedz
Narzędzie spectool
z pakietu może to zrobić. Wystarczy zainstalować rpmdevtools
i wskazać spectools
na .spec
tak:
spectool -g -R SPECS/nginx.spec
będzie pobierać żadnych brakujących źródeł do %{_sourcedir}
(zwykle SOURCES
) katalog rpm.
dla potomnych, istnieje inny sposób na to, co nie wymaga żadnych dodatkowych narzędzi lub pobieranie:
rpmbuild --undefine=_disable_source_fetch -ba /path/to/your.spec
źródła pobieranie automatycznie jest zabronione domyślnie ponieważ RPM brakuje wbudowanej kontroli integralności dla źródła archiwa. Sieć musi być zaufana, a wszystkie sumy kontrolne i podpisy sprawdzone. To ograniczenie ma sens dla opiekunów pakietów, ponieważ są oni odpowiedzialni za wysyłanie zaufanego kodu.
Jednak, gdy wiesz, co robisz i rozumiesz ryzyko, możesz po prostu znieść ograniczenie.
W pliku specyfikacji można umieścić %undefine _disable_source_fetch
w dowolnym miejscu przed źródłowym adresem URL.
Ze względów bezpieczeństwa należy również określić wartość sha256sum i sprawdzić ją w sekcji %prep
przed rozpoczęciem konfiguracji.
Oto przykład roboczych:
Name: monit
Version: 5.25.1
Release: 1%{?dist}
Summary: Monitoring utility for unix systems
Group: Applications/System
License: GNU AFFERO GENERAL PUBLIC LICENSE version 3
URL: https://mmonit.com/monit/
%undefine _disable_source_fetch
Source0: https://mmonit.com/monit/dist/%name-%version.tar.gz
%define SHA256SUM0 4b5c25ceb10825f1e5404f1d8a7b21507716b82bc20c3586f86603691c3b81bc
%define debug_package %nil
BuildRequires: coreutils
%description
Monit is a small Open Source utility for managing and monitoring Unix systems. Monit conducts automatic maintenance
and repair and can execute meaningful causal actions in error situations.
%prep
echo "%SHA256SUM0 %SOURCE0" | sha256sum -c -
%setup -q
...
kuponów
@YaroslavFedevych dla Undefine _disable_source_fetch.
Nie mogę znaleźć, który rpm zawiera spekulację w SUSE. – aleung
Czy to nie jest po prostu "spectool" https://build.opensuse.org/package/show/devel:tools/spectool – joeforker
Ponieważ chciałem wiedzieć, co oznaczają flagi: "-g, --gf, --get- pliki pobierają źródła/łaty, które są wymienione z adresem URL; -R, --sourcedir pobierz do% {_ sourcedir} "rpm" – Richlv