2015-10-16 13 views

Antwort

26

Das Dienstprogrammaus dem Paket rpmdevtools kann dies tun. Installieren Sie einfach rpmdevtools und zeigen spectools am .spec wie so:

spectool -g -R SPECS/nginx.spec 

Es wird heruntergeladen alle Quellen in Umdrehungen pro Minute des %{_sourcedir} (in der Regel SOURCES) Verzeichnis fehlt.

+0

Ich kann nicht finden, welche rpm spectool in SUSE enthält. – aleung

+0

Ist es nicht einfach 'spectool' https://build.opensuse.org/package/show/devel:tools/spectool – joeforker

+1

Da ich wissen wollte, was die Flags bedeuten: "-g, --gf, --get- files ruft die Quellen/Patches ab, die mit einer URL aufgelistet sind; -R, --sourcedir download in rpm% {_ sourcedir} " – Richlv

6

Für die Nachwelt ist es eine andere Möglichkeit, es zu tun, die keine zusätzlichen Werkzeuge oder Downloads benötigt:

rpmbuild --undefine=_disable_source_fetch -ba /path/to/your.spec 

Herunterladen Quellen standardmäßig automatisch verboten ist, weil RPM Integritätsprüfungen für die Quelle-eingebauten ermangelt Archiv. Das Netzwerk muss vertrauenswürdig sein und alle Prüfsummen und Signaturen überprüft werden. Diese Einschränkung ist für Paketbetreuer sinnvoll, da sie für das Versenden von vertrauenswürdigem Code verantwortlich sind.

Wenn Sie jedoch wissen, was Sie tun und die Risiken verstehen, können Sie die Einschränkung einfach zwangsweise aufheben.

1

In der Spezifikationsdatei können Sie %undefine _disable_source_fetch irgendwo vor der Quell-URL platzieren.

Aus Sicherheitsgründen sollten Sie auch die sha256sum angeben und im Abschnitt %prep vor der Einrichtung überprüfen.

Hier ist ein funktionierendes Beispiel:

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 

... 

Credits

@YaroslavFedevych für undefine _disable_source_fetch.