Saya ingin memodifikasi paket Fedora 15 ( gnome-shell-extensions-alternative-status-menu
). Ini modifikasi kecil (mengembalikan komit ini ). Dengan menggunakan yumdownloader
saya dapat mengunduh SRPM ( gnome-shell-extensions-3.0.2-1.g63dd27cgit.fc15.src.rpm
).
Setelah ini, bagaimana saya membongkar dan membangunnya kembali?
Jawaban:
Apa yang saya lakukan, sebagai pengguna ROOT:
Instal SRPM seperti yang Anda lakukan pada paket lain (
rpm --install [source-rpm-filename]
)Periksa
/root/rpmbuild/SPECS
direktori dan temukan file spesifikasi yang cocok dengan paket Andarpmbuild -bb /root/rpmbuild/SPECS/[found-filename]
Paket biner yang dihasilkan kemudian terletak di
/root/rpmbuild/RPMS/
direktori yang siap diinstal melaluirpm --install
perintah standar .CATATAN: Ini hanya membangun apa yang ada dalam paket biner standar. Saya memposting ini menjawab pertanyaan spesifik, bukan bagaimana cara membuat perubahan ke sumber dan menghasilkan paket baru.
Untuk melakukan modifikasi, Anda bisa memberikan tambalan sebagai input dan mengubah file SPECS .... atau Anda dapat mengganti standar yang
*.tar.bz2
ada di/root/rpmbuild/SOURCES
dalamnya dengan perubahan Anda lalu melakukan build seperti dijelaskan di atas.Hati-hati Anda mungkin harus mengubah paket SPECS untuk membuatnya bekerja (biasanya dengan menarik keluar tambalan, dan mengubah beberapa nama file yang diprogram oleh file SPECS).
EDIT
Tampaknya membangun rpms karena root adalah praktik ( sumber ) yang buruk. Ini berfungsi dengan baik sebagai pengguna non-root.
Petunjuk langkah demi langkah untuk menambahkan tambalan (dari sini ):
rpmbuild/SOURCES
.rpmbuild/SPECS/package.spec
dan tambahkanPatch0: mypatch.patch
kanan setelahSource0: ...
baris.%setup ...
baris tambahkan%patch0 -p1
barisSekarang itu akan membangun secara normal, yaitu. dengan:
rpmbuild -ba SPECS/package.spec
sumber
sudo dnf install rpmdevtools
diperlukan untuk perintah rpmbuild. Dan%patch0 -p1
baris tersebut harus dihilangkan jika file spek menggunakan%autosetup
garis alih-alih yang%setup
satu (seperti%autosetup
menerapkan tambalan secara otomatis).sudo rpm -ivh --force your.rpm
Paket OpenSSL Rebuild CentOS 6.4 adalah contoh terperinci dari pembangunan kembali paket SRPM.
Contoh di atas menggunakan Mock - Jedi Light Saber dari pembangun paket.
Mock diciptakan untuk mengisi chroot dengan andal, lalu membangun kembali sebuah paket di chroot itu.
Untuk lebih lanjut, lihat http://fedoraproject.org/wiki/Projects/Mock
Pada contoh, mock digunakan 3 kali - sekali untuk "membongkar" paket, lalu untuk membangun kembali .src.rpm, dan akhirnya untuk membuat .rpm.
sumber