Tiba-tiba saya memutuskan untuk melihat kode sumber untuk 'gema'
$ which echo
/usr/bin/echo
begitu
$ ls -al /usr/bin/echo
-rwxr-xr-x. 1 root root 32536 Oct 31 2016 /usr/bin/echo
begitu
$strings /usr/bin/echo
membuat saya percaya bahwa ini adalah program C yang dikompilasi
Sekarang saya mandek.
Bagaimana saya:
Cari tahu di paket mana
Dapatkan sumbernya
Bangun kembali
Menguji
Instal versi baru di seluruh sistem
(Saya tahu bahwa 5 itu bukan ide yang baik, saya hanya ingin tahu ...)
Saya saat ini di Fedora, tetapi saya juga tertarik pada jawaban untuk Debian
Tautan ke tutorial yang relevan akan menjadi jawaban yang bagus.
Edit:
$ type -a echo
echo is a shell builtin
echo is /usr/bin/echo
Jadi saya kira itu yang /usr/bin/echo
saya ingin lihat daripada mencoba membaca semuanya bash
.
debian
fedora
source-code
John Lawrence Aspden
sumber
sumber
type -a echo
dulu./usr/bin/echo --version
selanjutnya.Jawaban:
RHEL / Fedora
Lari
rpm -qf /path
Unduh paket sumber (gunakan
yum
untuk RHEL):Ekstrak sumber, tambalan dari paket SRPM yang diunduh di direktori saat ini, ubah ke direktori tempat file diekstraksi dan temukan file Anda:
Anda dapat membangun kembali paket menggunakan
rpmbuild --rebuild coreutils-8.25-17.fc25.src.rpm
, yang akan menghasilkan RPM yang dapat Anda instal langsung pada sistem Anda.Jika Anda perlu melakukan beberapa modifikasi pada paket fedora, jauh lebih mudah untuk mengikuti cara pengelola: Instal
fedpkg
, klon repositori, lakukan modifikasi (menggunakan tambalan) dan buat kembali paket dengan modifikasi:sumber
Debian (dan turunannya)
Jalankan
dpkg -S /path
untuk melihat paket mana yang/path
menjadi milik:Dapatkan sumbernya (saya di Ubuntu):
Temukan file:
Sisanya terserah padamu.
sumber
dpkg -s coreutils
(atau paket apa pun yang Anda minati) dan cariHomepage:
. Dari beranda, Anda biasanya dapat menemukan akses baca ke kode sumber dan riwayat versi lengkapnya.