การเปลี่ยนชื่อไฟล์. deb นั้นปลอดภัยหรือไม่


13

โครงสร้างการจัดตั้งของชื่อไฟล์.deb ตามวรรคนี้package_version_architecture.deb

package_version_architecture.debแพคเกจบางคนไม่ทำตามโครงสร้างชื่อ แพ็คเกจที่เปลี่ยนชื่อโดย dpkg-name จะเป็นไปตามโครงสร้างนี้ โดยทั่วไปจะไม่มีผลกระทบต่อวิธีการติดตั้งแพ็กเกจโดย dselect / dpkg แต่เครื่องมือการติดตั้งอื่น ๆ อาจขึ้นอยู่กับโครงสร้างการตั้งชื่อนี้

คำถาม:

อย่างไรก็ตามจะมีสถานการณ์จริงใด ๆ เมื่อเปลี่ยนชื่อ.debแฟ้มแพคเกจเป็นอย่างสูงที่ยกเลิกแนะนำ? เป็นเรื่องปกติหรือไม่ที่จะให้.debชื่อไฟล์ที่กำหนดเองสำหรับซอฟต์แวร์ของฉัน

ตัวอย่าง:

  • My Program for Linux v1.0.0 (Pro).deb - การตั้งชื่อที่กำหนดเอง
  • my-program_1.0.0-1_amd64.deb - การตั้งชื่ออย่างเป็นทางการที่เหมาะสม

บันทึก:

ฉันไม่ได้วางแผนที่จะสร้าง repo ฉันแค่โฮสติ้ง.debแพคเกจซอฟต์แวร์บนเว็บไซต์เพื่อดาวน์โหลดโดยตรง


8
กรุณาเพื่อความรักของทุกสิ่งศักดิ์สิทธิ์ไม่ใช้ช่องว่างหรือวงเล็บในชื่อไฟล์ของคุณ พวกมันทำให้ความเจ็บปวดในตูดเพื่อจัดการพวกเขาจากบรรทัดคำสั่งและเป็นแหล่งที่มาของข้อบกพร่องในการจัดการไฟล์
Austin Hemmelgarn

คำตอบ:


26

หลายปีที่ผ่านมาฉันได้สะสม.debแพ็คเกจจำนวนมากที่มีชื่อที่ไม่ได้มาตรฐานและฉันจำไม่ได้ว่าพบปัญหาใด ๆ “ที่มีชื่อเสียง” แพคเกจที่มีชื่อที่ไม่ได้มาตรฐานที่คนอาจจะเจอในปัจจุบันรวมและgoogle-chrome-stable_current_amd64.deb steam.deb(ในทั้งสองกรณีชื่อที่คงที่และไม่มีเวอร์ชันจะช่วยให้แน่ใจว่าสามารถใช้ URL ที่เสถียรสำหรับการดาวน์โหลดและชื่อที่มั่นคงสำหรับคำแนะนำในการติดตั้ง)

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

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

จากทั้งหมดนี้ถ้าคุณไม่ต้องการยึดติดกับชื่อมาตรฐานฉันจะแนะนำอะไรเช่นmy-program.debหรือmy-program_amd64.deb(ขึ้นอยู่กับว่าคุณต้องการที่จะสนับสนุนสถาปัตยกรรมที่หลากหลาย) คุณสามารถสร้าง symlink ให้กับชื่อไฟล์ที่มีเวอร์ชันได้เช่นกันหากคุณต้องการอนุญาตให้ดาวน์โหลดเวอร์ชันเก่ากว่า


"URL ที่เสถียรสามารถใช้สำหรับการดาวน์โหลด" - ฉันจะประหลาดใจถ้า Google และ Valve ไม่เคยได้ยินการเปลี่ยนเส้นทาง
OrangeDog

@OrangeDog ฉันจะได้รับการดาวน์โหลดแบบคงที่ (โดยไม่มีการเปลี่ยนทิศทาง) ยังช่วยให้สิ่งต่าง ๆ ง่ายขึ้น (เพราะเมื่อทำการเปลี่ยนเส้นทางชื่อไฟล์สุดท้ายที่ใช้บนดิสก์จะแตกต่างกันไปขึ้นอยู่กับเครื่องมือที่ใช้ในการดาวน์โหลด
Stephen Kitt

10

ชื่อไฟล์ได้มาตรฐานเป็นหลักเพื่อประโยชน์ของซอฟต์แวร์การบำรุงรักษาที่เก็บถาวรและแคชท้องถิ่น

ในสมัยก่อนก่อนที่m68kสถาปัตยกรรมจะถูกเพิ่มใน Debian ชื่อไฟล์ที่ใช้ " package _ version .deb" โดยไม่มีปัญหา ชื่อสถาปัตยกรรมถูกเพิ่มลงในชื่อไฟล์เมื่อซอฟต์แวร์เก็บถาวรที่จำเป็นในการจัดเก็บi386และm68kแพคเกจของแพคเกจและรุ่นเดียวกันในไดเรกทอรีเดียวกัน เนื่องจากรายการแพ็กเกจประกอบด้วยชื่อไฟล์ทั้งยาวและ 8.3ซึ่งสามารถนำไปใช้ได้โดยไม่ทำให้ไคลเอนต์ขาด

Dpkg โดยทั่วไปไม่สนใจเกี่ยวกับชื่อไฟล์ของแพ็คเกจเลย ระหว่างการติดตั้ง APT จะสร้างไดเรกทอรีที่มีไฟล์แพคเกจทั้งหมดสำหรับการติดตั้งนี้และแต่ละไฟล์จะมีหมายเลขในการรันปัจจุบันที่ผนวกเข้ากับชื่อไฟล์ (เช่นถ้าคุณติดตั้งแพ็คเกจfooเวอร์ชัน 1 และแพ็คเกจbarรุ่น 2 ซึ่งfooขึ้นอยู่กับ เหมาะที่จะผ่าน0-bar_2_all.debและ1-foo_1_amd64.debเพื่อ dpkg)

โดยทั่วไปแล้ว APT จะถือว่าชื่อนั้นไม่ซ้ำกันสำหรับวัตถุประสงค์ในการแคช หากคุณใช้ชื่อซ้ำผู้ใช้ที่มีไฟล์นี้ในแคชแล้วจะพยายามทำการดาวน์โหลดต่อหากไฟล์ใหม่มีขนาดใหญ่กว่าซึ่งจะทำให้พวกเขามีไฟล์ที่ไม่ถูกต้องซึ่งจะถูกทิ้งในภายหลังเนื่องจากไม่ผ่านการทดสอบการตรวจสอบ อย่างไรก็ตามข้อผิดพลาดนี้จะปรากฏต่อผู้ใช้และพวกเขาจะต้องเริ่มการติดตั้งใหม่

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