Di mana kode sumber terbaru dari perintah man untuk linux?


20

Saya mencari kode sumber terbaru dari perintah man, versi di Linux saya cukup lama (v1.6f), tetapi saya gagal setelah googling beberapa saat.

Maksud saya kode sumber terbaru man, bukan man-pageshanya file biner /usr/bin/manitu sendiri yang dapat dikompilasi dan diinstal.

Jawaban:


19

Anda biasanya dapat meminta distribusi Anda untuk melihat dari mana sumber-sumber itu berasal. Sebagai contoh, saya menggunakan Fedora, dan saya dapat melihat bahwa manperintah tersebut berasal dari man-dbpaket:

$ rpm -qf /usr/bin/man
man-db-2.6.7.1-16.fc21.x86_64

Saya kemudian dapat menanyakan man-dbpaket untuk url hulu:

$ rpm -qi man-db | grep -i url
URL         : http://www.nongnu.org/man-db/

Dan inilah Anda, http://www.nongnu.org/man-db/ .

Anda dapat melakukan urutan langkah yang sama dengan sistem pengemasan yang digunakan pada distribusi lain.


Terima kasih, saya sudah mendapatkan man-db setelah saya memposting pertanyaan ini, sepertinya saya tidak bisa hanya mengkompilasi man dari kode sumber karena banyak dependensi.
CodyChan

Itu benar. Anda harus menyelesaikan semua dependensi terlebih dahulu. meskipun begitu, binary man baru Anda mungkin tidak berguna bagi Anda karena ketergantungan pada binari baru lainnya.
fpmurphy

1
Jika hanya ada dependensi linear, ini mudah ;-) Ada garis sistem program GNOME yang memiliki dependensi melingkar. Saya berharap bahwa beberapa pengembang OSS belajar untuk membuat sumber dengan hanya ketergantungan linear yang didokumentasikan.
schily

1
Untuk referensi di masa mendatang, pada distribusi berbasis Debian, perintah yang setara adalah dpkg -S /usr/bin/mandanapt-cache show man-db | grep Homepage
Tim

2

Pada distribusi berbasis Debian, sama seperti Ubuntu, Anda dapat menemukan dan mengunduh kode sumber seperti di bawah ini:

$ which man
/usr/bin/man
$ dpkg --search /usr/bin/man
man-db: /usr/bin/man
$ apt-get source man-db

Ini akan menempatkan kode sumber di direktori kerja Anda saat ini.


Terima kasih, ini membantu saya. Akan lebih baik jika jawaban ini entah bagaimana lebih umum.
Aaron Hall

-2

Linux bukan sistem operasi tetapi hanya sebuah kernel. Jadi secara teori setiap distro bebas menggunakan apapun yang mereka suka.

Bahkan rpm belum tentu digunakan pada setiap distro linux, jadi langkah pertama adalah mencari tahu implementasi mana yang digunakan. Ini biasanya dapat dilakukan dengan menggunakan stringspada biner dan kemudian menggunakan string yang signifikan dalam tanda kutip ganda sebagai string pencarian di Google.


1
Jika rpm -qfatau dpkg -Satau yang setara untuk sistem pengemasan Anda untuk `" $ (command -v man) "mengembalikan nama paket, maka metode itu akan jauh lebih dapat diandalkan daripada googling untuk string yang ditemukan dalam biner. Ingatlah bahwa sebagian besar distribusi menambal perangkat lunak dari hulu. Jadi paket source untuk distribusi Anda adalah satu-satunya tempat untuk mencari kode sumber yang tepat seperti yang dikompilasi untuk / usr / bin / man Anda.
Stéphane Chazelas

Ada lebih dari selusin sistem pengemasan yang berbeda, jadi Anda perlu menyebutkan banyak metode ..... tetapi Anda benar: Secara umum, banyak distribusi yang tidak kolaboratif dan menambal bug ke dalam perangkat lunak atau tidak melaporkan tambalan yang bermanfaat ke hulu.
schily
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.