Chciałbym zmodyfikować pakiet Fedory 15 ( gnome-shell-extensions-alternative-status-menu
). To mała modyfikacja (cofnięcie tego zatwierdzenia ). Używając yumdownloader
Jestem w stanie pobrać SRPM ( gnome-shell-extensions-3.0.2-1.g63dd27cgit.fc15.src.rpm
).
Po tym, jak go rozpakować, a następnie odbudować?
Odpowiedzi:
Co robię, jako użytkownik ROOT:
Zainstaluj SRPM tak jak każdy inny pakiet (
rpm --install [source-rpm-filename]
)Przejrzyj
/root/rpmbuild/SPECS
katalog i znajdź plik specyfikacji pasujący do Twojego pakieturpmbuild -bb /root/rpmbuild/SPECS/[found-filename]
Powstałe pakiety binarne są następnie umieszczane w
/root/rpmbuild/RPMS/
katalogu, które są gotowe do zainstalowania za pomocą standardowegorpm --install
polecenia.UWAGA: Po prostu buduje to, co jest w standardowym pakiecie binarnym. Publikuję to, odpowiadając na konkretne pytanie, a nie jak wprowadzać zmiany w źródle i generować nowe pakiety.
Aby dokonać modyfikacji, możesz albo wprowadzić łaty jako dane wejściowe i zmienić plik SPECS .... lub możesz zastąpić standard
*.tar.bz2
znajdujący się w/root/rpmbuild/SOURCES
swoim pliku zmianą, a następnie wykonać kompilację zgodnie z powyższym opisem.Uwaga: może zaistnieć konieczność zmiany pakietu SPECS, aby działał (zwykle poprzez usunięcie łatki i zmianę niektórych nazw plików, które są programowane przez plik SPECS).
EDYTOWAĆ
Wygląda na to, że budowanie RPM jest złą praktyką ( źródłem ). Działa dobrze jako użytkownik inny niż root.
Instrukcje krok po kroku, aby dodać łatkę ( stąd ):
rpmbuild/SOURCES
.rpmbuild/SPECS/package.spec
i dodajPatch0: mypatch.patch
bezpośrednio poSource0: ...
linii.%setup ...
linii dodaj%patch0 -p1
linięTeraz będzie budował normalnie, tj. z:
rpmbuild -ba SPECS/package.spec
źródło
sudo dnf install rpmdevtools
jest potrzebnych do polecenia rpmbuild. I%patch0 -p1
wiersz powinien zostać pominięty, jeśli plik spec używa%autosetup
linii zamiast%setup
jednej (jak%autosetup
automatycznie stosuje łatkę).sudo rpm -ivh --force your.rpm
Przebudowa pakietu OpenSSL CentOS 6.4 jest szczegółowym przykładem przebudowy pakietu SRPM.
W powyższym przykładzie użyto Mock - Jedi Light Saber twórców pakietów.
Mock został stworzony, aby niezawodnie wypełniać chroota, a następnie odbudować pakiet w tym chroocie.
Aby uzyskać więcej informacji, zobacz http://fedoraproject.org/wiki/Projects/Mock
W tym przykładzie mock jest używany 3 razy - raz do „rozpakowania” pakietu, następnie do przebudowania pliku .src.rpm i wreszcie do utworzenia .rpm.
źródło