ไม่สามารถติดตั้ง man page บนคอนเทนเนอร์ Centos Docker ที่น้อยที่สุด


13

ฉันมีอิมเมจ Center 7 Docker น้อยที่สุดและฉันพยายามหาหน้าเว็บเพื่อช่วยในการดีบัก Dockerfile ของฉัน ออกจากกล่องมันมีไม่มาก:

# man ls
No manual entry for ls

ตามคำตอบ Serverfault นี้ฉันได้ติดตั้งman-pagesRPM และดูเหมือนว่าจะไม่เป็นไร:

# yum install -y man-pages
Loaded plugins: fastestmirror, ovl
Loading mirror speeds from cached hostfile
 * base: mirror.vtti.vt.edu
 * extras: centos.mbni.med.umich.edu
 * updates: centos.netnitco.net
Resolving Dependencies
--> Running transaction check
---> Package man-pages.noarch 0:3.53-5.el7 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

======================================================================================================
 Package                  Arch                  Version                     Repository           Size
======================================================================================================
Installing:
 man-pages                noarch                3.53-5.el7                  base                5.0 M

Transaction Summary
======================================================================================================
Install  1 Package

Total download size: 5.0 M
Installed size: 4.6 M
Downloading packages:
man-pages-3.53-5.el7.noarch.rpm                                                | 5.0 MB  00:00:01     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : man-pages-3.53-5.el7.noarch                                                        1/1 
  Verifying  : man-pages-3.53-5.el7.noarch                                                        1/1 

Installed:
  man-pages.noarch 0:3.53-5.el7                                                                       

Complete!

อย่างไรก็ตาม:

# man ls
No manual entry for ls

ฉันเคยrpmตรวจสอบว่าman-pagesควรมีlsหน้าคนและดูเหมือนว่า:

# rpm -ql man-pages | grep -w ls
/usr/share/man/man1p/ls.1p.gz

แต่มันดูเหมือนไม่ได้ติดตั้งจริง:

# man 1p ls
No manual entry for ls in section 1p
# ls -l /usr/share/man/man1p/
total 0

และดูเหมือนจะไม่เป็นที่อื่นใดในระบบไฟล์เช่นกัน

# find / -name ls.1\*
#

ฉันสามารถสร้างไฟล์ได้/usr/share/man/man1p/ดังนั้นจึงอาจไม่ใช่ความแปลกประหลาดของระบบไฟล์เสมือนของ Docker

ส่วนที่ดีที่สุดของสิ่งนี้คือสิ่งที่ฉันต้องการในนาทีนี้คือหน้าuseraddคำสั่งที่ไม่ได้อยู่ใน RPM นั้น shadow-utilsมันอยู่ใน

# yum whatprovides /usr/share/man/man8/useradd.8.gz
Loaded plugins: fastestmirror, ovl
Loading mirror speeds from cached hostfile
 * base: mirror.vtti.vt.edu
 * extras: mirror.tzulo.com
 * updates: centos.netnitco.net
2:shadow-utils-4.1.5.1-18.el7.x86_64 : Utilities for managing accounts and shadow password files
Repo        : base
Matched from:
Filename    : /usr/share/man/man8/useradd.8.gz

ซึ่งติดตั้งไว้แล้ว

# yum install shadow-utils
Loaded plugins: fastestmirror, ovl
Loading mirror speeds from cached hostfile
 * base: mirror.vtti.vt.edu
 * extras: centos.mbni.med.umich.edu
 * updates: centos.netnitco.net
Package 2:shadow-utils-4.1.5.1-18.el7.x86_64 already installed and latest version
Nothing to do

และในความเป็นจริงไบนารี (เช่น/usr/sbin/useradd) อยู่ที่นั่น แต่ไม่ใช่หน้าคน

# ls -l /usr/share/man/man8/useradd.8.gz
ls: cannot access /usr/share/man/man8/useradd.8.gz: No such file or directory

ดังนั้นคำถามของฉันคือ:

  1. เหตุใดฉันจึงไม่พบหน้าใด ๆ ที่ควรจะอยู่ในshadow-utilsRPM เมื่อฉันสามารถหาไบนารีได้
  2. ทำไมการติดตั้งman-pagesRPM ไม่สำเร็จ (ติดตั้งไฟล์ที่ควรจะเป็นใน RPM นั้น)

ปรับปรุง:ต่อคำตอบของแอรอน Marasco ของและความคิดเห็น msuchy ของyum reinstall shadow-utilsผมพยายาม เช่นเดียวกับyum install man-pagesนี้ดูเหมือนจะเสร็จสมบูรณ์ แต่ไม่จริงใส่ไฟล์ใด ๆ /usr/share/man/ใน


คำถามที่คล้ายกันใน centos 6 นักเทียบท่า imge: unix.stackexchange.com/questions/182500/no-manual-entry-for-man
maxschlepzig

เกิดขึ้นกับฉันในการตั้งค่า Vagrant ด้วย CentOS 7 - ฉันพบว่าบาง แพคเกจที่ติดตั้งก่อนที่จะติดตั้งman-pagesแพคเกจนั้นไม่มีหน้าเว็บ วิธีแก้ไขคือติดตั้งแพ็คเกจเหล่านี้ใหม่เช่นyum reinstall yum rpmครอบคลุมทั้งสองชุด
RichVel

คำตอบ:


12

รูปภาพของคุณอาจมีการnodocsตั้งค่าสถานะธุรกรรมในการกำหนดค่า yum (cf. /etc/yum.conf)

คุณสามารถลบแบบโกลบอล (หรือที่บรรทัดคำสั่ง yum) ก่อน (อีกครั้ง) การติดตั้งแพ็กเกจที่คุณต้องการสำหรับ man page

ตัวอย่างเช่น:

yum --setopt=tsflags='' reinstall shadow-utils

ควรที่จะ--setopt=tsflags=''แนะนำในคำตอบของการประชุมสุดยอดใต้ ? ( =สำหรับ-)
David Moles

1
@DavidMoles ใช่นี่คือการพิมพ์ผิด - ไวยากรณ์ของสวิตช์ที่ถูกต้องถูกใช้ในเอกสาร Projectatomic อ้างอิงด้วย
maxschlepzig

ขอบคุณ ฉันเพิ่งจะแก้ไข แต่ จำกัด ตัวอักษร 6 ตัว :)
David Moles

ทำไมต้องติดตั้ง shadow-utils อีกครั้ง
Tiina

@Tina เพราะนี่เป็นแพ็คเกจที่ให้คำสั่งuseradd(ซึ่งอ้างอิงในคำถาม)
maxschlepzig

5

ไม่มีอะไรทำงานได้ที่นี่และเหนือคำตอบที่ยอมรับมีการพิมพ์ผิด ฉันไม่มีตัวแทนมากพอที่จะแสดงความคิดเห็นที่นั่นดังนั้นฉันจึงเพิ่มมันไว้ที่นี่เป็นคำตอบในกรณีที่มันช่วยทุกคน

ในการติดตั้งแพ็กเกจที่มีหน้าคนใช้:

yum --setopt=tsflags='' install man-db

แล้ว:

yum --setopt=tsflags='' install {your-package-name}

หรือคุณสามารถลบบรรทัดออกจาก yum.conf อย่างถาวรซึ่งป้องกันมิให้เพจติดตั้ง หากต้องการทำสิ่งนี้ให้ใช้:

sed -i '/tsflags=nodocs/d' /etc/yum.conf

จากนั้นคุณสามารถใช้yum installหรือyum reinstallตามปกติ

แหล่ง


1 นอกจากนี้ยังมีเพียงแค่แสดงความคิดเห็นออกบรรทัด nodocs,sed -i 's/tsflags=nodocs/# &/' /etc/yum.conf
ไมเคิล

2

ฉันรู้ว่านี่เป็นคำถามเก่า แต่เมื่อถึงเวลาที่ฉันใช้เวลาติดตามมันจะมีประโยชน์กับคนอื่นในที่สุด

ปัญหาเกี่ยวข้องกับวิธีการกำหนดค่า RPM ในอิมเมจ Docker ก่อนอื่นให้ตรวจดูว่าexcludedocsคำสั่งแสดงอยู่ในการกำหนดค่า RPM ดังนี้:

# rpm --showrc | grep docs

หากมีอยู่ในนั้นคุณจะต้องค้นหาไฟล์ที่ระบุไว้ในกรณีของฉันมันอยู่ภายใต้/etc/rpm/macros.imgcreateและลบออก

ยำควรทำการติดตั้ง man-page ทั้งหมดตามที่คาดไว้ (เนื่องจากคุณยังไม่ได้nodocs tsflagกล่าวถึงข้างต้น


1

ภาพนักเทียบท่าถูกตัดลงอย่างมาก ฉันเชื่อว่าพวกเขาลบ man pages หลังจากติดตั้ง RPM แล้ว rpm -V shadow-utilsคุณสามารถตรวจสอบกับ ฉันรู้ว่าฉันมีปัญหาในการพยายามใช้เดลต้า RPMs เพื่ออัปเกรดแพ็กเกจเนื่องจากหน้าเว็บขาดหายไป

น่าเศร้าที่ฉันคิดว่าวิธีเดียวที่จะได้รับหน้าคนสำหรับบางสิ่งบางอย่างจะบังคับให้ติดตั้ง RPM ใหม่หรือดึงข้อมูลจาก RPM ด้วยตนเองและวางลงในตำแหน่ง

ดูเว็บไซต์นี้ฉันเดา


2
ใช่. yum reinstall shadow-utilsจะซ่อม
msuchy

@msuchy ฉันแค่ลองดูแล้วก็ไม่ได้ เกี่ยวข้องกับสิ่งที่ป้องกันไม่ให้man-pagesติดตั้งอย่างถูกต้องหรือไม่
David Moles

@ แอรอน-D-Marasco ที่อธิบายว่าทำไมพวกเขาไม่ได้รับการติดตั้งจะเริ่มต้นด้วย man-pagesแต่ก็ไม่ได้อธิบายสิ่งที่เกิดขึ้นเมื่อฉันพยายามที่จะติดตั้ง
David Moles

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.