ใครสามารถอธิบายสิ่งที่โฟลเดอร์ /.rpmdb ในไดเรกทอรีรากสำหรับ? แอปพลิเคชันใดที่สร้างและใช้งานอยู่
ใครสามารถอธิบายสิ่งที่โฟลเดอร์ /.rpmdb ในไดเรกทอรีรากสำหรับ? แอปพลิเคชันใดที่สร้างและใช้งานอยู่
คำตอบ:
ฉันไม่สามารถบอกได้อย่างชัดเจนว่าอะไรสร้างไดเรกทอรีนี้ แต่มีแนวโน้มว่ามันจะถูกสร้างขึ้นเป็นผลข้างเคียงของการติดตั้งไดรเวอร์เคอร์เนล Linux บุคคลที่สามเช่น NVIDIA หรือ VirtualBox โดยใช้DKMSหรือสคริปต์ตัวติดตั้งอื่น ๆ ที่ไม่สนับสนุน อูบุนตู ไดเรกทอรีนี้อาจถูกสร้างขึ้นเป็นผลข้างเคียงของกระบวนการติดตั้งที่เกิดขึ้นเพื่อรองรับการแจกแจงแบบ rpm และ deb-based DKMS นั้นเป็นสคริปต์การติดตั้งและสามารถสร้างไดเรกทอรีนี้ได้อย่างถูกต้องภายใต้เงื่อนไขที่ถูกต้อง สามารถลบไดเรกทอรีได้อย่างปลอดภัยโดยไม่ทำอันตรายต่อระบบของคุณ แต่อาจถูกสร้างขึ้นอีกครั้งเมื่อติดตั้งการปรับปรุงในภายหลัง ดูข้อผิดพลาด # 1069350สำหรับรายงานข้อผิดพลาดแบบเปิดที่ติดตามปัญหานี้
นั่นคือคำตอบสั้น ๆ ตอนนี้รายละเอียดเพิ่มเติมบางอย่าง
ดังที่คุณทราบ rpm เป็นรูปแบบบรรจุภัณฑ์ซอฟต์แวร์และชุดเครื่องมือสำหรับการติดตั้งแพ็กเกจและการบำรุงรักษาฐานข้อมูลของแพ็กเกจที่ติดตั้งและการพึ่งพาซึ่งกันและกัน มันถูกใช้โดยการกระจายจำนวนมาก แต่ไม่ใช่โดย Ubuntu และการกระจายแบบอิงเดบิตอื่น ๆ น่าเสียดายสำหรับ Ubuntu อย่างไรก็ตามการใช้rpm
คำสั่งใด ๆจำเป็นต้องมีฐานข้อมูล "rpmdb" ที่ถูกต้องเพื่อสร้างหรือสร้าง
ในการแจกแจงแบบ rpm นี่ไม่ใช่ปัญหาเนื่องจากมี rpmdb ทั่วทั้งระบบตามคำจำกัดความ บนระบบ Ubuntu เนื่องจากมีความจำเป็นสำหรับฐานข้อมูลรอบต่อนาทีทั้งระบบไม่มีการกำหนดค่าการใช้ฐานข้อมูลภายใต้ไดเรกทอรีบ้านของผู้ใช้แต่ละคนโดยเฉพาะrpm
$HOME/.rpmdb
ฐานข้อมูลนี้ถูกสร้างขึ้นอย่างเงียบ ๆ ตามที่ต้องการเมื่อใดก็ตามที่rpm
ทำงาน เนื่องจากอยู่ในโฮมไดเร็กตอรี่ของผู้ใช้แต่ละคน, ไม่มีปัญหาเกี่ยวกับการอนุญาตแบบแบ่งใช้หรือต้องการให้ผู้ดูแลระบบสร้างฐานข้อมูล ผู้ใช้ทุกคนเพิ่งได้รับฐานข้อมูลรอบต่อนาทีที่ว่างเปล่าส่วนตัว
ปรากฎว่าบางโครงการต้องการสร้างสคริปต์การติดตั้งที่จะทำงานกับการกระจายใด ๆ ไม่ว่าจะเป็นการกระจายที่ใช้ 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
ไดเรกทอรีปรากฏในระบบของคุณ แต่ทำไมในไดเรกทอรีรากของระบบ
คำอธิบายที่ง่ายที่สุดสำหรับการนี้ก็คือตัวแปรสภาพแวดล้อมเป็นอย่างใดไม่มีการตั้งค่าในบริบทกระบวนการบางอย่างที่วิ่ง$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 สาเหตุที่พวกเขาอาจถูกสร้างขึ้นโดยอัตโนมัติและทำไมสามารถสร้างหนึ่งในไดเรกทอรีรากภายใต้เงื่อนไขที่เหมาะสม ไม่ต้องกังวลอะไรเลยไม่มีสิ่งใดที่เป็นอันตรายในการมีอยู่ของไดเรกทอรีนี้และมันสามารถลบออกได้ถ้าการมีอยู่ของมันไม่เหมาะสมต่อความสวยงามหรือสแกนเนอร์ความปลอดภัย
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
alien
/.rpmdb
จะปรากฏบนระบบ Ubuntu (ซึ่งไม่ได้ใช้รอบต่อนาที)