ฉันจะถอนการติดตั้งไฟล์ Apple pkg Package ได้อย่างไร


50

แม้จะมีความคิดเห็นที่ตรงกันข้ามแต่แพ็คเกจทั้งหมดไม่ได้ติดตั้งอย่างหมดจดในไดเรกทอรีเดียวเท่านั้น มีวิธีที่จะย้อนกลับกระบวนการติดตั้งของไฟล์ pkg โดยเฉพาะอย่างยิ่งกับแพคเกจเดิม (หรือจากที่เก็บข้อมูลเกี่ยวกับแพคเกจที่ติดตั้ง)?

โดยเฉพาะฉันได้ติดตั้งแพคเกจ PowerPC MySQL 5.4.1 บน intel MacBook และต้องการย้อนกลับอย่างหมดจดโดยทำการกู้คืนการติดตั้ง 5.1 x86 ที่ฉันเห็นได้ยังคงอยู่ แต่ตอนนี้ทำงานไม่ถูกต้อง

คำตอบ:


83

https://wincent.com/wiki/Uninstalling_packages_(.pkg_files)_on_Mac_OS_Xอธิบายวิธีการถอนการติดตั้งโดยใช้ .pkg pkgutilพื้นเมือง

ข้อความที่ตัดตอนมาดัดแปลง

$ pkgutil --pkgs # list all installed packages
$ pkgutil --files the-package-name.pkg # list installed files

หลังจากตรวจสอบรายการไฟล์ด้วยสายตาคุณสามารถทำสิ่งที่ชอบ:

$ pkgutil --pkg-info the-package-name.pkg # check the location
$ cd / # assuming the package is rooted at /...
$ pkgutil --only-files --files the-package-name.pkg | tr '\n' '\0' | xargs -n 1 -0 sudo rm -f
$ pkgutil --only-dirs --files the-package-name.pkg | tail -r | tr '\n' '\0' | xargs -n 1 -0 sudo rmdir

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

สำหรับแพ็คเกจขนาดเล็กมันอาจปลอดภัยกว่าที่จะลบไฟล์ด้วยตนเองหลังจากตรวจสอบรายชื่อไฟล์แพ็กเกจด้วยสายตา

เห็นได้ชัดว่ามีอยู่ครั้งหนึ่ง--unlinkตัวเลือกที่มีอยู่pkgutilแต่เป็นของ Lion มันไม่ได้กล่าวถึงในหน้าคน บางทีมันอาจถูกลบเพราะถือว่าอันตรายเกินไป

เมื่อคุณถอนการติดตั้งไฟล์คุณสามารถลบใบเสร็จรับเงินด้วย:

$ sudo pkgutil --forget the-package-name.pkg

1
ผมขอแนะนำให้ใช้rmdirแทนrm -r; นอกจากนี้ยังสามารถใช้tacหรือtail -rย้อนกลับรายการชื่อไดเรกทอรีเพื่อให้พวกเขาถูกลบในลำดับที่ถูกต้อง
Sam Mason

18
อย่าเรียกใช้ sudo rm -ir PART รายการรวมถึงไดเรกทอรีหลัก! ดังนั้นหาก pkg ติดตั้งบางอย่างใน / usr / ... คุณจะลบ ALL / usr /
FiloSottile

2
ฉันได้เปลี่ยนคำสั่งสำหรับการลบไดเรกทอรีที่จะใช้rmdir(ซึ่งไม่ได้ลบไดเรกทอรีที่ไม่ว่างเปล่า) และใช้tail -rเพื่อแสดงรายการพวกเขาตามลำดับที่ดีกว่า
brablc

1
แดกดันเมื่อใช้ pgkutil ฉันพบ uninstaller.pl ซุกไปฉันสามารถใช้ ที่สมบูรณ์แบบ!
cmroanirgo

สิ่งหนึ่งที่ pkgs ดูเหมือนจะไม่ติดตามก็คือ symlink ที่สร้างโดย pkgs อาจเป็นไปได้ว่าการล้างข้อมูลแพคเกจจากคำแนะนำด้านบน (หรือวิธีการใด ๆ ที่นี่) จะทำให้ symlink เสีย
James McMahon

19

ติดตั้งในระบบไม่มีตัวเลือกในการถอนการติดตั้งไฟล์โดยใช้ตัวถอนการติดตั้งดังนั้นคุณสามารถสร้างตัวถอนการติดตั้งด้วยตัวเองหรือลบไฟล์ด้วยตนเอง

วิธีที่ดีที่สุดในการพิจารณาว่าไฟล์ใดที่ได้รับการติดตั้งคือการเก็บต้นฉบับไว้.pkgถ้าเป็นไปได้ /Library/Receiptsถ้าไม่ได้เป็นไปได้ที่คุณยังสามารถใช้ใบเสร็จรับเงินแทนพบได้ที่ ปัญหาที่ใหญ่ที่สุดของคุณคือเมื่อคุณจัดการกับไฟล์.mpkgที่มีหลาย.pkgไฟล์เพราะคุณจะต้องค้นหา.pkgไฟล์ทั้งหมดในโฟลเดอร์นั้น (ขอบคุณไม่ยากเมื่อเรียงตามวันที่)

เมื่อคุณมี.pkgไฟล์ (ใบเสร็จรับเงินหรือไฟล์ติดตั้งแบบเต็ม) จากนั้นคุณสามารถใช้ยูทิลิตี้เพื่อสร้างตัวถอนการติดตั้งหรือค้นหาไฟล์เพื่อให้คุณสามารถลบออกได้ด้วยตนเอง:

ถอนการติดตั้ง

Absolute Software InstallEaseเป็นโปรแกรมฟรีที่สามารถสร้างโปรแกรมถอนการติดตั้งจากไฟล์. pkg ที่มีอยู่ ทำ.pkgไฟล์ตัวถอนการติดตั้ง(หมายเหตุ: คุณจะต้องติดตั้งเครื่องมือสำหรับนักพัฒนาซอฟต์แวร์ของ Apple เพื่อสร้าง.pkgไฟล์จริง)

ด้วยมือ

การใช้โปรแกรมเช่นPacifistหรือปลั๊กอิน QuickLook เช่นSuspicious Packageคุณสามารถดูไฟล์ที่ติดตั้งและตำแหน่งใด การใช้รายการนั้นคุณสามารถนำทางไปยังโฟลเดอร์เหล่านั้นด้วยตนเองและลบไฟล์ ฉันใช้วิธีนี้นับครั้งไม่ถ้วนก่อนที่ฉันจะค้นพบ InstallEase แต่วิธีนี้ก็ยังเร็วกว่านี้หากการติดตั้งไม่ได้กระจายอยู่ในหลาย ๆ ที่


ขอบคุณในขณะที่แพ็คเกจปกติ 5.1 mysql ออกใบเสร็จ แต่แพ็คเกจ 5.4 5.4 mysql ไม่ได้รับ มันแปลกเล็กน้อย
dlamblin

4
ว้าวถ้าฉันรู้สิ่งนี้ฉันจะไม่ติดตั้งตัว.pkgเริ่มต้นด้วย คุณไม่มีโปรแกรมและฟีเจอร์ OS X หรือไม่
NobleUplift

10

คุณสามารถถอนการติดตั้งแพ็คเกจ. pkg ด้วย UninstallPKG ( http://www.corecode.at/uninstallpkg/ )

[เปิดเผยแบบเต็ม: ใช่ฉันเป็นผู้เขียน]


มันน่าสังเกตว่ามันไม่ฟรี แต่รวมถึงการทดลองใช้ฟรี
Ron E

1

คุณสามารถลองดูคำแนะนำจากเว็บไซต์นี้: http://www.entropy.ch/software/macosx/mysql/remove-old-mysql.html นอกจากนี้ยังมีบทความเกี่ยวกับเรื่องนี้ในเว็บไซต์การสนับสนุนของ Adobe นี่คือการเชื่อมโยง: http://support.adobe.com/devsup/devsup.nsf/docs/52355.htm

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


1

ฉันทำเชลล์ srcipt

คุณสามารถลอง

https://github.com/iamrToday/pkg-remove

มันแสดงให้เห็นถึงการสาธิต. gif คุณสามารถดูซอร์สโค้ดเพียงแค่ล้อมบรรทัดคำสั่งของ brablc คุณสามารถเรียกใช้มันเพื่อค้นหาข้อมูลคุณยังสามารถลบ apk มันเป็นแบบโต้ตอบ


มันทำอะไร?
Pierre.Vriens

ฉันแสดงการสาธิต. gif คุณสามารถดูซอร์สโค้ดได้เพียงแค่ล้อมบรรทัดคำสั่งของbrablc คุณสามารถเรียกใช้มันเพื่อค้นหาข้อมูลคุณยังสามารถลบ apk มันเป็นแบบโต้ตอบ :)
rToday Lin
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.