Apakah ada cara untuk menemukan paket biner terinstal yang tidak memiliki halaman manual?

13

Saya baru-baru ini melihat https://lintian.debian.org/tags/binary-without-manpage.html dan menunjukkan sekitar 14k halaman manual yang hilang.

Ini berarti kemungkinan besar beberapa paket biner (bukan perpustakaan) memiliki halaman manual yang hilang. Bagaimana cara saya mendapatkan daftar paket / aplikasi biner yang terinstal (BUKAN pustaka) yang tidak memiliki halaman manual? Saya mungkin tahu beberapa dan mulai berkontribusi sedikit ke arah itu.

shirish
sumber

Jawaban:

16

Anda dapat mendaftar semua biner tanpa halaman manual melalui manpage-alertperintah

manpage-alert - check for binaries without corresponding manpages

DESCRIPTION

   manpage-alert  searches the given list of paths for binaries without cor‐
   responding manpages.

   If no paths are specified on the command line, the path list  /bin  /sbin
   /usr/bin /usr/sbin /usr/games will be assumed
GAD3R
sumber
2
tidak tahu itu bagian dari paket devscripts, thanx.
shirish
5

Meskipun manpage-alertmelakukan apa yang Anda minta, Anda harus mencatat bahwa daftar di tautan dari pertanyaan Anda dihasilkan oleh proses yang berbeda, yang merupakan pemeriksaan berikut di Lintian:

https://github.com/Debian/lintian/blob/master/checks/manpages.pm

Sehingga dapat diproduksi dengan memanggil lintiandengan -T binary-without-manpageopsi (dan opsi lain untuk memilih paket yang ingin Anda periksa).

Grisha Levit
sumber
tidak tahu tentang itu, thanx.
shirish
4

Berkat jawaban yang diterima, itu menarik untuk belajar tentang keberadaan utilitas manpage-alert, bagian dari devscriptspaket, yang sebenarnya merupakan skrip shell.

Saya mencoba untuk menginstal devscriptstetapi saya mendapat prompt untuk menginstal sekitar 70MB dependensi, jadi saya melewatkan.

Mengunduh devscriptspaket deb ( apt download devscripts), mengekstrak deb dan melihat lebih dekat ke manpage-alertskrip, keseluruhan cerita "di bawah tenda" adalah bahwa skrip lansiran ini menjalankan perintah:

man -w -S 1:8:6 <file> (w = tunjukkan lokasi -S 1: 8: 6 membatasi pencarian manusia di bagian 1,8 dan 6).

Operasi ini dilakukan di semua file secara rekursif bawah direktori /bin, /sbin, /usr/bin, /usr/sbin, dan /usr/games.

Selain itu, mengarahkan manke 2>&1dan juga mengarahkan ke >/dev/null, jika file memiliki lokasi halaman manual yang valid tidak ada yang dicetak, tetapi jika manmengeluh untuk "tidak ada entri manual" maka pesan ini dicetak.
Penulis manpage-alertselanjutnya menghapus manpesan kesalahan dari pesan "see man 7 tidak terdokumentasi untuk bantuan" dan hanya menyimpan baris pertama = No manual entry for xxxx.

Sebagai hasilnya, beberapa baris berikut akan memberikan cetakan yang sama dari binary yang tidak memiliki halaman manual tanpa menginstal paket devscripts:

F=( "/bin/*" "/sbin/*" "/usr/bin/*" "/usr/sbin/*" "/usr/games/*" )
for f in ${F[@]};do 
  for ff in $f;do
    if ! mp=$(man -w -S 1:8:6 "${ff##*/}" 2>&1 >/dev/null);then 
       echo "$mp" |grep -v "man 7 undocumented" #man 7 undocumented is printed in a separate line.
    fi
  done
done

PS: ${ff##*/}hanya menyimpan nama perintah stripping the path /usr/bin/atau /bin/atau apapun itu

Di atas juga dapat dijalankan sebagai satu-liner:

gv@debi64:$ F=( "/bin/*" "/sbin/*" "/usr/bin/*" "/usr/sbin/*" "/usr/games/*" );for f in ${F[@]};do for ff in $f;do if ! mp=$(man -w -S 1:6:8 "${ff##*/}" 2>&1 >/dev/null);then echo "$mp" |grep -v "man 7 undocumented";fi;done;done

No manual entry for ntfsmove
No manual entry for ipmaddr
No manual entry for iptunnel
^C

PS: Tentu saja Anda dapat menginstal devscriptskarena banyak utilitas / skrip yang bagus disertakan. Saya hanya ingin tahu apa yang berjalan di bawah tenda :-)

George Vasiliou
sumber
Ada banyak paket menarik di devscripts, misalnya dch, rmadison, wnpp-check dan beberapa lainnya, hanya tidak tahu tentang ini. Itu sangat berharga. Saya ragu ini akan menjadi bashscript karena debian telah mencoba untuk menghapus bashism dan mengandalkan skrip shell biasa yang lebih mudah dari satu xterm ke yang lain.
shirish
@shirish Melihat lebih dekat, manpage-alertnaskah aslinya dimulai dengan#!/bin/sh -e
George Vasiliou