Uruchomiłem dpkg-buildpackage
po uzyskaniu apt-get source nginx
wersji nginx backports i modyfikacji w debian/rules
celu włączenia modułu uwsgi. Ostatnie wyniki polecenia to:
dpkg-deb: building package `nginx' in `../nginx_0.7.67-3~bpo50+1_i386.deb'.
dpkg-deb: building package `nginx-dbg' in `../nginx-dbg_0.7.67-3~bpo50+1_i386.deb'.
signfile nginx_0.7.67-3~bpo50+1.dsc
gpg: keyring `/home/shogun/.gnupg/secring.gpg' created
gpg: skipped "Faidon Liambotis <[email protected]>": secret key not available
gpg: [stdin]: clearsign failed: secret key not available
dpkg-genchanges >../nginx_0.7.67-3~bpo50+1_i386.changes
dpkg-genchanges: warning: the current version (0.7.67-3~bpo50+1) is smaller than the previous one (0.7.67-3)
dpkg-genchanges: not including original source code in upload
dpkg-buildpackage: binary and diff upload (original source NOT included)
dpkg-buildpackage: warning: Failed to sign .dsc and .changes file
Narzeka, że ponieważ nie jestem oryginalnym opiekunem pakietu, mój klucz nie pasował.
Czy to jest naprawdę konieczne, a jeśli tak, to jak mogę zmusić go do użycia pasujących plików gpg?
ls -al
. Nie udało się ich utworzyć z powodu nieudanej weryfikacji gpg, prawda? Czy to znaczy, że masz nowe polecenie? Czy się mylę?Kiedy tworzysz inną wersję pakietu (tak jak zrobiłeś, ponieważ zmieniłeś reguły kompilacji), naprawdę powinieneś dodać wpis dziennika zmian. W ten sposób twój pakiet będzie miał inny numer wersji (więc od razu będziesz wiedział, że to nie jest standardowy pakiet z dystrybucji) i będziesz miał ślad tego, co zmieniłeś.
Edytuj
debian/changelog
i dodaj wpis naśladujący format istniejących wpisów. Wybierz datę od dzisiaj i wybierz numer wersjilike 0.7.67-3~bpo50+meder1
(chcesz czegoś, codpkg --compare-versions
mówi, że twoja wersja jest nowsza). Podaj swój adres e-mail jako opiekuna; w ten sposób masz wyraźne wskazanie, że jest to zmodyfikowany pakiet, idpkg-buildpackage
poprosisz o podanie hasła GPG.Jeśli jesteś użytkownikiem Emacsa, zainstaluj
dpkg-dev-el
pakiet i użyj poleceńC-c C-a
orazC-c C-c
, aby dodać i sfinalizować wpis dziennika zmian.źródło
Chociaż podpisywanie pakietu nie jest konieczne, a
-uc -us
opcji można użyć, aby uniknąć tego kroku, pomocne może być również podpisanie pakietu, zwłaszcza jeśli inni będą go używać lub będziesz wysyłać go niebezpiecznymi ścieżkami komunikacyjnymi. I wcale nie jest to trudne.Aby wygenerować dobry podpis, zobacz stronę podręcznika dla dpkg-buildpackage . Domyślnie podpisuje paczki za pomocą gpg. Z wydrukowanych komunikatów o błędach wynika, że po prostu jeszcze nie wygenerowałeś klucza gpg. Zobacz np. GnuPrivacyGuardHowto - Community Ubuntu Documentation, aby uzyskać instrukcje i tło.
Jak zauważa @Gilles, należy również zmienić numer wersji pakietu za pomocą pliku dziennika zmian i podać adres e-mail dla klucza gpg, którego będziesz używać. Łatwym sposobem na to jest uruchomienie
dch --local foo
polecenia, gdzie „foo” jest słowem kluczowym dla zmiany. Jeśli naprawdę nie chcesz tego zrobić, a trzeba podać inny opiekun lub uploader nazwa / adres lub klucz specyficzny być stosowane podczas podpisywania, można również użyć-m
,-e
lub-k
przy budowie opcja.Zobacz Jak przebudować pakiety Debiana, aby uzyskać więcej wskazówek.
Trudna część przychodzi, gdy ktoś próbuje zdecydować, czy dana paczka jest podpisana przez osobę, której ufa. Sprawdź sieć zaufania PGP, aby poradzić sobie z subtelnymi problemami.
źródło