इस मैन पेज की आज की तारीख क्यों है?


9

एक विशिष्ट manपृष्ठ (मेरे मामले में, ncकमांड के लिए) मेरे पास आज की तारीख में सिस्टम के लिए कोई अपडेट किए बिना क्यों होगा ? इसके अलावा, "अनअटेंडेड अपडेट" लॉग उस दिन के लिए कोई विशिष्ट गतिविधि क्यों नहीं दिखाता है?

2018-03-14 07:47:38,124 INFO Initial blacklisted packages:
2018-03-14 07:47:38,135 INFO Starting unattended upgrades script
2018-03-14 07:47:38,135 INFO Allowed origins are: ['o=LinuxMint,a=qiana-security', 'o=LinuxMintESM,a=qiana']
2018-03-14 07:47:51,767 INFO No packages found that can be upgraded unattended and no pending auto-removals

यह ncमैन पेज के लिए पाद लेख है :

BSD                             March 14, 2018                             BSD

यह लिनक्स मिंट 17 (qiana) पर है, जो कि गॉफ 1.22.2 और मैन-डीबी 2.6.1.1 के साथ Ubuntu 14.04 (भरोसेमंद) पर आधारित है।

संपादित करें

अनुरोधित आदेश आउटपुट:

  1. man -aw nc

    /usr/share/man/man1/nc_openbsd.1.gz
    
  2. ls -ld $(man -aw nc)

    -rw-r--r-- 1 root root 5.7K Dec  4  2012 /usr/share/man/man1/nc_openbsd.1.gz
    

जो अजीब है ...

  1. dpkg -S $(man -aw nc)?

    netcat-openbsd: /usr/share/man/man1/nc_openbsd.1.gz
    
  2. type -a man

    man is /usr/bin/man
    
  3. zgrep docdate $(man -aw nc)

    .Dd $Mdocdate: February 7 2012 $
    
  4. एडेड फोल्डर strace -f man nc 2>&1 | grep -e '^BSD' -e '"/.*nc'

    ychaouche#ychaouche-PC 14:31:15 ~ $ strace -f man nc 2>&1 | grep -e '^BSD' -e '"/.*nc'
    execve("/usr/bin/man", ["man", "nc"], [/* 87 vars */]) = 0
    lstat("/usr/share/man/man1/nc.1.gz", {st_mode=S_IFLNK|0777, st_size=25, ...}) = 0
    lstat("/usr/share/man/man1/nc.1.gz", {st_mode=S_IFLNK|0777, st_size=25, ...}) = 0
    readlink("/usr/share/man/man1/nc.1.gz", "/etc/alternatives/nc.1.gz", 4095) = 25
    lstat("/etc/alternatives/nc.1.gz", {st_mode=S_IFLNK|0777, st_size=35, ...}) = 0
    readlink("/etc/alternatives/nc.1.gz", "/usr/share/man/man1/nc_openbsd.1"..., 4095) = 35
    lstat("/usr/share/man/man1/nc_openbsd.1.gz", {st_mode=S_IFREG|0644, st_size=5756, ...}) = 0
    stat("/usr/share/man/man1/nc_openbsd.1.gz", {st_mode=S_IFREG|0644, st_size=5756, ...}) = 0
    stat("/usr/share/man/man1/nc_openbsd.1.gz", {st_mode=S_IFREG|0644, st_size=5756, ...}) = 0
    open("/usr/share/man/man1/nc_openbsd.1.gz", O_RDONLY) = 3
    access("/usr/share/man/man1/nc.1.gz", R_OK) = 0
    lstat("/usr/share/man/man1/nc.1.gz", {st_mode=S_IFLNK|0777, st_size=25, ...}) = 0
    lstat("/usr/share/man/man1/nc.1.gz", {st_mode=S_IFLNK|0777, st_size=25, ...}) = 0
    readlink("/usr/share/man/man1/nc.1.gz", "/etc/alternatives/nc.1.gz", 4095) = 25
    lstat("/etc/alternatives/nc.1.gz", {st_mode=S_IFLNK|0777, st_size=35, ...}) = 0
    readlink("/etc/alternatives/nc.1.gz", "/usr/share/man/man1/nc_openbsd.1"..., 4095) = 35
    lstat("/usr/share/man/man1/nc_openbsd.1.gz", {st_mode=S_IFREG|0644, st_size=5756, ...}) = 0
    stat("/usr/share/man/man1/nc_openbsd.1.gz", {st_mode=S_IFREG|0644, st_size=5756, ...}) = 0
    stat("/usr/share/man/man1/nc_openbsd.1.gz", {st_mode=S_IFREG|0644, st_size=5756, ...}) = 0
    open("/usr/share/man/man1/nc_openbsd.1.gz", O_RDONLY) = 3
    stat("/usr/share/man/man1/nc.1.gz", {st_mode=S_IFREG|0644, st_size=5756, ...}) = 0
    stat("/usr/share/man/cat1/nc.1.gz", 0x7fffa49c0940) = -1 ENOENT (No such file or directory)
    stat("/usr/share/man/man1/nc_openbsd.1.gz", {st_mode=S_IFREG|0644, st_size=5756, ...}) = 0
    open("/usr/share/man/man1/nc_openbsd.1.gz", O_RDONLY) = 3
    [pid  3878] stat("/usr/share/man/man1/nc_openbsd.1.gz", {st_mode=S_IFREG|0644, st_size=5756, ...}) = 0
    [pid  3878] access("/usr/share/man/man1/nc_openbsd.1.gz", R_OK <unfinished ...>
    BSD                             March 20, 2018                             BSD
    
  5. strace -f man nc 2>&1 | grep -vwe -1 | grep -o '"/[^"]*"' | sort -u | grep -v /dev/ | xargs sh -c 'zgrep "March 14" "$@"' sh 2> /dev/null

     no output
    

    ऐसा लगता है कि तारीख हार्डकोड नहीं है। आज की तारीख में मैक्रो जनरेट हो सकता है।

  6. env | grep -e ROFF -e MAN -e GRO

    SESSION_MANAGER=local/ychaouche-PC:@/tmp/.ICE-unix/2915,unix/ychaouche-PC:/tmp/.ICE-unix/2915
    MANDATORY_PATH=/usr/share/gconf/default.mandatory.path
    
  7. env -i man nc आज की तारीख (20 मार्च 2018) से पता चलता है

  8. zcat /usr/share/man/man1/nc_openbsd.1.gz | nroff -mandoc | grep BSD

    ychaouche#ychaouche-PC 06:59:53 ~ $ zcat /usr/share/man/man1/nc_openbsd.1.gz | nroff -mandoc | grep BSD
    NC(1)                     BSD General Commands Manual                    NC(1)
    BSD                             March 20, 2018                             BSD
    ychaouche#ychaouche-PC 07:01:41 ~ $
    
  9. strace -f man nc 2>&1 | grep -vwe -1 | grep -o '"/[^"]*tmac/[^"]*"' | sort -u | xargs ls -lrtd

    ychaouche#ychaouche-PC 17:26:08 /usr/share/man/man1 $ unalias ls
    ychaouche#ychaouche-PC 17:26:12 /usr/share/man/man1 $ unalias xargs
    ychaouche#ychaouche-PC 17:26:14 /usr/share/man/man1 $ unalias grep
    ychaouche#ychaouche-PC 17:26:16 /usr/share/man/man1 $ strace -f man nc 2>&1 | grep -vwe -1 | grep -o '"/[^"]*tmac/[^"]*"' | sort -u | xargs ls -lrtd
    -rw-r--r-- 1 root root  4065 Jan 22  2014 /usr/share/groff/1.22.2/tmac/papersize.tmac
    -rw-r--r-- 1 root root  1860 Jan 22  2014 /usr/share/groff/1.22.2/tmac/andoc.tmac
    -rw-r--r-- 1 root root    71 Jan 22  2014 /usr/share/groff/1.22.2/tmac/unicode.tmac
    -rw-r--r-- 1 root root  1552 Jan 22  2014 /usr/share/groff/1.22.2/tmac/tty.tmac
    -rw-r--r-- 1 root root  5183 Jan 22  2014 /usr/share/groff/1.22.2/tmac/tty-char.tmac
    -rw-r--r-- 1 root root  1145 Jan 22  2014 /usr/share/groff/1.22.2/tmac/troffrc-end
    -rw-r--r-- 1 root root  1387 Jan 22  2014 /usr/share/groff/1.22.2/tmac/troffrc
    -rw-r--r-- 1 root root  4729 Jan 22  2014 /usr/share/groff/1.22.2/tmac/pspic.tmac
    -rw-r--r-- 1 root root 22042 Jan 22  2014 /usr/share/groff/1.22.2/tmac/mdoc/doc-syms
    -rw-r--r-- 1 root root  4048 Jan 22  2014 /usr/share/groff/1.22.2/tmac/mdoc/doc-nroff
    -rw-r--r-- 1 root root 29284 Jan 22  2014 /usr/share/groff/1.22.2/tmac/mdoc/doc-common
    -rw-r--r-- 1 root root  2250 Jan 22  2014 /usr/share/groff/1.22.2/tmac/latin1.tmac
    -rw-r--r-- 1 root root 27860 Jan 22  2014 /usr/share/groff/1.22.2/tmac/hyphen.us
    -rw-r--r-- 1 root root 15678 Jan 22  2014 /usr/share/groff/1.22.2/tmac/hyphenex.us
    -rw-r--r-- 1 root root  1362 Jan 22  2014 /usr/share/groff/1.22.2/tmac/fallbacks.tmac
    -rw-r--r-- 1 root root 73807 Jan 22  2014 /usr/share/groff/1.22.2/tmac/doc.tmac
    -rw-r--r-- 1 root root   537 Jan 22  2014 /usr/share/groff/1.22.2/tmac/composite.tmac
    -rw-r--r-- 1 root root   704 Jan 22  2014 /usr/share/groff/site-tmac/mdoc.local
    ychaouche#ychaouche-PC 17:26:18 /usr/share/man/man1 $
    

आज कल था। मैंने अनुरोधित कमांड आउटपुट को शामिल करने के लिए पोस्ट विवरण को अपडेट किया।
12

यहां मैनपेज का सोर्स कोड दिखाई देता है (ओपी के सिस्टम पर जाहिरा तौर पर इंस्टॉल किए गए संस्करण में)।
स्टीफन किट

क्या Is आदमी ’अलियास है या ओवरराइड? type -a manआउटपुट मदद करेगा।
जेफ स्कालर

2
@ कीवी, ठीक है, यह एक पेचीदा समस्या है। और एक बड़ी समस्या के कारण हो सकता है।
स्टीफन चेजेलस 19:18

1
-0और --delimiter='\n'एक साथ थोड़ा समझ में आता है (एक परिसीमन NUL को, LF को दूसरा सेट करता है)
स्टीफन चेज़लस

जवाबों:


10

GNU रॉफ़ ने उन का समर्थन नहीं किया:

 .Dd $Mdocdate: February 7 2012 $

OpenBSD एक्सटेंशन (यहां $Mdocdate: ...$CVS / RCS कीवर्ड का CVS (जो OpenBSD अपने कोड को नियंत्रित करने के लिए संस्करण नियंत्रण का उपयोग करता है) का नियमावली संशोधन की तारीख के साथ विस्तार किया जा रहा है, जिसके परिणामस्वरूप वर्तमान तिथि को एक निर्दिष्ट के बजाय विस्तारित किया जाना चाहिए। मैं इसे Ubuntu 14.04 पर उन सभी मैन पेजों के लिए पुन: पेश कर सकता हूं जिनमें ऐसा है Mdocdate

Https://lavannah.gnu.org/bugs/?42968 https://lists.gnu.org/archive/html/groff-commit/2014-10/msg00092.html (groff संस्करण 1.22.3) में लागू देखें ।


आपके paxcpioया उसके जैसे MirBSD (अब MirOS) के मैन पेजों के लिए mksh, जो एक ही $Mdocdate: ...$CVS कीवर्ड का उपयोग करते हैं , आप मैन पेज .Ddमैक्रो को खुद को फिर से परिभाषित (रैप) कर पाएंगे, इसलिए रफ सिस्टम मैक्रोज़ को इसका समर्थन करने की आवश्यकता नहीं है:

.\"
.\" Implement .Dd with the Mdocdate RCS keyword
.\"
.rn Dd xD
.de Dd
.ie ^G\\$1^G$Mdocdate:^G \{\
.       xD \\$2 \\$3, \\$4
.\}
.el .xD \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8
..
.\"
.\" .Dd must come before definition of .Mx, because when called
.\" with -mandoc, it might implement .Mx itself, but we want to
.\" use our own definition. And .Dd must come *first*, always.
.\"
.Dd $Mdocdate: August 16 2017 $

1
यह एक शानदार डिबगिंग था। बहुत बहुत धन्यवाद।
ychaouche

1
@ लाइकौचे, अब पिछड़े दिख रहे हैं, जिन्हें देखने के लिए कुछ चीजों में से एक होना चाहिए था, लेकिन किसी कारण से मुझे लगा कि आपका मिंट क्याना 14.04 के बजाय उबंटू 16.04 पर आधारित था और 16.04 को इसे पुन: पेश नहीं कर सका
स्टेपल चेज़लस

आपकी टिप्पणी में दिखाए गए अनुसार zgrep का उपयोग करते हुए, मैंने उन सभी पुरुष पृष्ठों की एक सूची बनाई, जिनमें यह "बग" था: gist.github.com/ychaouche/fabe43225d1692dc325826d2be221bc4 । मैंने उनमें से कुछ को मैन्युअल रूप से सत्यापित किया है, बग वहां है। लेकिन यह डेबियन 8 में तय करने के लिए किया गया है लगता है (सर्वरों में से एक पर 8.10 का उपयोग कर, बग वहाँ नहीं।)
ychaouche

man sshग्रॉफ 1.22.2-8 के साथ यहां डेबियन 8.10 सिस्टम पर वर्तमान दिनांक दिखाता है। हो सकता है कि आपको groffनए रिलीज़ से पैकेज मिले (स्ट्रेच में 1.22.3 है)। देखते हैं apt-cache policy groff
स्टीफन चेज़लस

1
@ साइकोच, यह वास्तव में एक बग नहीं है, यह है कि ओपनबीएसडी ने .Ddmdoc मैक्रो (जो अन्यथा स्वीकार करता है Month day, year) के लिए एक नया प्रारूप जोड़ा है , इसलिए वे इसमें सीवीएस कीवर्ड का उपयोग कर सकते हैं (यहां $Mdocdate: ... $जो दस्तावेज़ संशोधन की तारीख तक सीवीएस द्वारा विस्तारित है)। उन्होंने इसके लिए अपने स्वयं के mdocमैक्रोज़ को अद्यतन किया और उन मॉडिफ़िकेशन को बाद में ग्रोफ़ में मिला दिया गया ताकि ओपनबीएसडी मैन पेजों को अन्य प्रणालियों पर ठीक से स्वरूपित किया जा सके।
स्टीफन चेजलस
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.