โฟลเดอร์ที่ไม่รู้จักในระบบราก /.rpmdb


16

ใครสามารถอธิบายสิ่งที่โฟลเดอร์ /.rpmdb ในไดเรกทอรีรากสำหรับ? แอปพลิเคชันใดที่สร้างและใช้งานอยู่

คำตอบ:


11

ฉันไม่สามารถบอกได้อย่างชัดเจนว่าอะไรสร้างไดเรกทอรีนี้ แต่มีแนวโน้มว่ามันจะถูกสร้างขึ้นเป็นผลข้างเคียงของการติดตั้งไดรเวอร์เคอร์เนล Linux บุคคลที่สามเช่น NVIDIA หรือ VirtualBox โดยใช้DKMSหรือสคริปต์ตัวติดตั้งอื่น ๆ ที่ไม่สนับสนุน อูบุนตู ไดเรกทอรีนี้อาจถูกสร้างขึ้นเป็นผลข้างเคียงของกระบวนการติดตั้งที่เกิดขึ้นเพื่อรองรับการแจกแจงแบบ rpm และ deb-based DKMS นั้นเป็นสคริปต์การติดตั้งและสามารถสร้างไดเรกทอรีนี้ได้อย่างถูกต้องภายใต้เงื่อนไขที่ถูกต้อง สามารถลบไดเรกทอรีได้อย่างปลอดภัยโดยไม่ทำอันตรายต่อระบบของคุณ แต่อาจถูกสร้างขึ้นอีกครั้งเมื่อติดตั้งการปรับปรุงในภายหลัง ดูข้อผิดพลาด # 1069350สำหรับรายงานข้อผิดพลาดแบบเปิดที่ติดตามปัญหานี้

นั่นคือคำตอบสั้น ๆ ตอนนี้รายละเอียดเพิ่มเติมบางอย่าง

rpmdb คืออะไร

ดังที่คุณทราบ rpm เป็นรูปแบบบรรจุภัณฑ์ซอฟต์แวร์และชุดเครื่องมือสำหรับการติดตั้งแพ็กเกจและการบำรุงรักษาฐานข้อมูลของแพ็กเกจที่ติดตั้งและการพึ่งพาซึ่งกันและกัน มันถูกใช้โดยการกระจายจำนวนมาก แต่ไม่ใช่โดย Ubuntu และการกระจายแบบอิงเดบิตอื่น ๆ น่าเสียดายสำหรับ Ubuntu อย่างไรก็ตามการใช้rpmคำสั่งใด ๆจำเป็นต้องมีฐานข้อมูล "rpmdb" ที่ถูกต้องเพื่อสร้างหรือสร้าง

ในการแจกแจงแบบ rpm นี่ไม่ใช่ปัญหาเนื่องจากมี rpmdb ทั่วทั้งระบบตามคำจำกัดความ บนระบบ Ubuntu เนื่องจากมีความจำเป็นสำหรับฐานข้อมูลรอบต่อนาทีทั้งระบบไม่มีการกำหนดค่าการใช้ฐานข้อมูลภายใต้ไดเรกทอรีบ้านของผู้ใช้แต่ละคนโดยเฉพาะrpm $HOME/.rpmdbฐานข้อมูลนี้ถูกสร้างขึ้นอย่างเงียบ ๆ ตามที่ต้องการเมื่อใดก็ตามที่rpmทำงาน เนื่องจากอยู่ในโฮมไดเร็กตอรี่ของผู้ใช้แต่ละคน, ไม่มีปัญหาเกี่ยวกับการอนุญาตแบบแบ่งใช้หรือต้องการให้ผู้ดูแลระบบสร้างฐานข้อมูล ผู้ใช้ทุกคนเพิ่งได้รับฐานข้อมูลรอบต่อนาทีที่ว่างเปล่าส่วนตัว

ทำไม rpm ถึงถูกเรียกใช้บน Ubuntu?

ปรากฎว่าบางโครงการต้องการสร้างสคริปต์การติดตั้งที่จะทำงานกับการกระจายใด ๆ ไม่ว่าจะเป็นการกระจายที่ใช้ rpm-based, deb-based หรือไม่ DKMS เป็นหนึ่งในโครงการดังกล่าวจะช่วยให้ไดรเวอร์บุคคลที่สามถูกสร้างขึ้นสำหรับสิ่งที่เคอร์เนล Linux ที่ระบบกำลังทำงานอยู่และมันถูกเขียนขึ้นเพื่อทำงานข้ามการกระจาย ในส่วนของตรรกะเพื่อพิจารณาว่าการแจกจ่ายใดกำลังทำงานอยู่และเวอร์ชันเคอร์เนลใดที่มีอยู่จะดำเนินการrpmคำสั่งเพื่อสอบถามฐานข้อมูล ดังที่ฉันได้อธิบายไว้ก่อนหน้านี้สิ่งนี้จะสร้าง.rpmdbไดเรกทอรีอย่างเงียบ ๆหากไม่มีอยู่ในโฮมไดเรกทอรีของผู้ใช้ปัจจุบัน แบบสอบถามฐานข้อมูลควรล้มเหลวเนื่องจาก Ubuntu ไม่ใช่การกระจายแบบ rpm และ DKMS ยังคงเปิดอยู่

หากคุณติดตั้งแพคเกจไดรเวอร์เคอร์เนล Linux เพิ่มเติมจาก Ubuntu เช่น VirtualBox, NVIDIA, ndiswrapper หรือ openswan คุณอาจใช้ DKMS เพื่อติดตั้งไดรเวอร์เหล่านั้นสำหรับเคอร์เนลของคุณ โดยทั่วไปจะทำโดยอัตโนมัติเมื่อติดตั้งไดรเวอร์จากที่เก็บ Ubuntu ดังนั้นเมื่อใดก็ตามที่ติดตั้งเคอร์เนลหรืออัปเดตไดรเวอร์ DKMS จะทำงานอีกครั้งเพื่อสร้างไดรเวอร์สำหรับเคอร์เนลเวอร์ชันที่มีอยู่ทั้งหมด มันแสดงให้เห็นว่าเมื่อแพคเกจเหล่านั้นมีการปรับปรุง/root/.rpmdbไดเรกทอรีจริงปรากฏขึ้นซึ่งอยู่ในไดเรกทอรีบ้านของรูทตั้งแต่รูตจะต้องติดตั้งการปรับปรุง

ฉันไม่รู้จักสคริปต์การติดตั้งของ บริษัท อื่นที่เฉพาะเจาะจงซึ่งอาจเรียกใช้rpmคำสั่งเพื่อตรวจจับชนิดการแจกจ่าย แต่ก็เป็นไปได้อย่างแน่นอน ยกตัวอย่างเช่นคุณอาจต้องการติดตั้ง LargeProprietaryProgram จาก Initech และเพื่อให้คุณเรียกใช้install.shสคริปต์ในฐานะรูท สคริปต์นี้อาจพยายามสืบค้นฐานข้อมูล rpm เพื่อดูว่าคุณใช้การกระจายแบบ rpm หรือไม่และ/root/.rpmdbสร้างขึ้นใหม่อีกครั้ง

เพื่ออธิบายว่าทำไมคุณอาจเห็น/home/user/.rpmdbและ/root/.rpmdbไดเรกทอรีปรากฏในระบบของคุณ แต่ทำไมในไดเรกทอรีรากของระบบ

เหตุใด. rpmdb จึงถูกสร้างขึ้นในไดเรกทอรีราก

คำอธิบายที่ง่ายที่สุดสำหรับการนี้ก็คือตัวแปรสภาพแวดล้อมเป็นอย่างใดไม่มีการตั้งค่าในบริบทกระบวนการบางอย่างที่วิ่ง$HOME rpmลองใช้ DKMS เพื่อประโยชน์ในการโต้แย้งเพราะเรารู้ดีว่ามันสามารถรันrpmคำสั่งได้ เนื่องจากโดยทั่วไปแล้วจะทำงานเมื่อมีการติดตั้งหรืออัปเดตแพคเกจจึงทำงานในสภาพแวดล้อมของตัวจัดการแพคเกจที่คุณใช้งาน ถ้าคุณใช้ในการติดตั้งแพคเกจก็จะได้รับมรดกที่ถูกต้องsudo apt-get $HOMEถ้าคุณใช้ PackageKit มันอาจไม่มี$HOMEตัวแปรเลย ฉันไม่แน่ใจว่า Synaptic หรือ Ubuntu Software Center จัดหาสภาพแวดล้อมแบบใด

ดังนั้นหาก DKMS ทำงานในสภาพแวดล้อมที่ไม่ได้มีหนึ่ง$HOMEตัวแปรและเนื่องจากวิธีการที่ฐานข้อมูลรอบต่อนาทีถูกกำหนดฐานข้อมูลรอบต่อนาทีที่ว่างเปล่าจะถูกสร้างขึ้นในแทน/.rpmdb /root/.rpmdbสิ่งนี้ได้รับการแก้ไขในrpmแพ็คเกจสำหรับ Ubuntu ในเวอร์ชันการพัฒนา 14.10 ดังนั้นตอนนี้มันควรสร้าง/root/.rpmdbแม้ว่า$HOMEจะไม่ได้กำหนดไว้

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


-1

RPM (Red Hat Package Manager) เป็นระบบจัดการบรรจุภัณฑ์ มัน RPM ถูกเขียนขึ้นครั้งแรกในปี 1997 โดย Erik Troan และ Marc Ewing สำหรับใช้ในRed Hat Linux แต่ตอนนี้ถูกใช้ในการแจกแจง GNU / Linux จำนวนมาก

ทำงานอยู่เบื้องหลังของผู้จัดการแพคเกจเป็นฐานข้อมูล RPM ( RPMDB ) /var/lib/rpmเก็บไว้ใน มันประกอบด้วยฐานข้อมูลเดียว (แพคเกจ) ที่มีทั้งหมดของข้อมูลเมตาของRPMs ติดตั้ง ฐานข้อมูลจะใช้ในการติดตามไฟล์ทั้งหมดที่มีการเปลี่ยนแปลงและสร้างขึ้นเมื่อผู้ใช้ (ใช้ RPM) ติดตั้งแพคเกจจึงทำให้ผู้ใช้ (ผ่าน RPM) เพื่อย้อนกลับการเปลี่ยนแปลงและลบแพคเกจในภายหลัง


การอ้างอิง: http://en.wikipedia.org/wiki/RPM_Package_Manager


4
สิ่งนี้เกี่ยวข้องกับการอธิบายว่าทำไม/.rpmdbจะปรากฏบนระบบ Ubuntu (ซึ่งไม่ได้ใช้รอบต่อนาที)
Gilles 'หยุดความชั่วร้าย'

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