เมื่อวันที่ 28 มิถุนายน 2017 แอปเปิ้ลประกาศว่า
macOS High Sierra จะเป็น macOS รุ่นล่าสุดเพื่อรองรับแอพ 32 บิตโดยไม่สูญเสียประสิทธิภาพ
ฉันจะทราบได้อย่างไรว่าแอพใดใน Mac ของฉันเป็นแบบ 32 บิตเพื่อให้ฉันสามารถดูว่าฉันจำเป็นต้องอัพเกรดพวกเขาหรือไม่?
เมื่อวันที่ 28 มิถุนายน 2017 แอปเปิ้ลประกาศว่า
macOS High Sierra จะเป็น macOS รุ่นล่าสุดเพื่อรองรับแอพ 32 บิตโดยไม่สูญเสียประสิทธิภาพ
ฉันจะทราบได้อย่างไรว่าแอพใดใน Mac ของฉันเป็นแบบ 32 บิตเพื่อให้ฉันสามารถดูว่าฉันจำเป็นต้องอัพเกรดพวกเขาหรือไม่?
คำตอบ:
วิธีหนึ่งในการระบุว่าแอป 32 บิตที่คุณยังใช้อยู่คือการใช้ตัวเลือกข้อมูลระบบภายใต้เกี่ยวกับ Mac เครื่องนี้ ขั้นตอนที่แน่นอนนั้นแตกต่างกันไปตามรุ่นของ macOS ที่คุณกำลังใช้งาน แต่ด้านล่างเป็นขั้นตอนกว้าง ๆ ที่คุณควรปฏิบัติตามเพื่อให้เหมาะกับสถานการณ์ของคุณ:
64-Bit (Intel)
คลิกที่ส่วนหัวของคอลัมน์นี้เพื่อเรียงลำดับแอพโดยระบุว่าเป็นแบบ 64 บิตหรือไม่ (เช่นจะมีรายการใช่หรือไม่ใช่ในแต่ละแอป)อ้างถึงภาพด้านล่างเป็นตัวอย่าง:
หมายเหตุ:ในภาพด้านบนฉันตั้งใจไม่เรียงลำดับคอลัมน์สุดท้ายเพื่อให้คุณเห็นรายการที่มีทั้งใช่และไม่ใช่อยู่ในรายการ ในตัวอย่างข้างต้นคุณจะเห็นว่า iMovie v10.1.6 เป็นแอพ 64 บิตในขณะที่ iMovie 9.0.9 ไม่ใช่ 64-Bit
แก้ไข - หากขั้นตอนข้างต้นส่งผลให้เกิดข้อผิดพลาด
ฉันได้เห็นรายงานว่ามีผู้ใช้จำนวนไม่มากที่ได้รับข้อความแสดงข้อผิดพลาด"ปลั๊กอินไม่ตอบสนองอย่างรวดเร็วเพียงพอในขณะรวบรวมข้อมูลนี้"ขณะรอรายการที่จะเติม
หากสิ่งนี้เกิดขึ้นให้ออกจากแอพ System Information (หรือแอพ System Profiler ในรุ่นเก่ากว่าของ macOS) และเริ่มต้นอีกครั้ง แต่คราวนี้ข้ามขั้นตอนที่ 1 ถึง 4 และไปที่โฟลเดอร์ Applications / Utilities โดยตรงแล้วเปิดแอป System Information (หรือระบบ แอพ Profiler) โดยตรงจากที่นั่น เมื่อเปิดขึ้นให้ทำตามขั้นตอนที่ 5 ถึง 8 ด้านบน
ใน Finder กดcmdFเพื่อรับหน้าต่างค้นหา
กดปุ่ม + และเพิ่มเกณฑ์ที่สอง " สถาปัตยกรรมที่ดำเนินการได้ " " ไม่ใช่ " " x86_64 "
และคุณจะได้รับรายชื่อแอป i386 เท่านั้น (เช่น 32 บิต)
ในเทอร์มินัลสิ่งนี้ทำได้ด้วย:
mdfind "(kMDItemExecutableArchitectures == 'i386') && (kMDItemExecutableArchitectures != 'x86_64')"
~/Library/Application Support
เช่นเกม Steam โซลูชันอื่นทำ คุณรู้หรือไม่ว่ามีวิธีใดที่จะแก้ไขการค้นหาเพื่อรวมสิ่งนั้น?
คำตอบอื่น ๆ ที่ฉันเข้าใจจะแสดงรายการแอป macOS แบบ 32 บิต (และอาจเป็นไบนารีแบบ 32 บิต) ในดัชนีเมตาดาต้า หากคุณต้องการแสดงรายการไบนารีที่สามารถเรียกใช้งานได้แบบ 32 บิตทุกบิตบนระบบของคุณจะทำให้การดำเนินการแบบหนึ่งบรรทัดต่อไปนี้:
find / -type f -perm +111 -exec file -p {} \; -exec head -c 1 /dev/zero \; | xargs -0 -n 1 sh -c 'echo "$@" | head -n 1' -- | grep -v x86_64 | grep -E Mach-O.+i386
หากคุณมี GNU findutils ติดตั้งอยู่สิ่งนี้อาจจะง่ายขึ้นมาก ความซับซ้อนบางอย่างที่นี่คือการเอาชนะข้อ จำกัด ของ Findutils BSD ที่รวมอยู่ใน macOS
คำสั่ง Terminal หนึ่งบรรทัดนี้จะรวบรวมรายการแอพลงในไฟล์ข้อความบนเดสก์ท็อปของคุณ มันคว้า 6 บรรทัดก่อนและ 2 บรรทัดหลังจากเกิด "(Intel): ไม่มี" ทุกครั้งในแบบสอบถาม อย่างไรก็ตามมันไม่ได้ขุดลงในไบนารีหรือไลบรารีรองรับ 32 บิตสำหรับแอพ 64 บิตที่คอมไพล์แล้ว รายการนั้นกว้างขวางมากขึ้นและฉันไม่สามารถค้นหาทรัพยากรใด ๆ ที่จัดการปัญหาในระดับที่ลึกกว่าหากเป็นปัญหา
system_profiler SPApplicationsDataType | grep -B 6 -A 2 "(Intel): No" > ~/Desktop/32BitAppList.txt
เมื่อคุณต้องการตรวจสอบแอปพลิเคชันเดียว:
file myapplication
ตัวอย่างเช่นตัวติดตามรังสีของฉันrt
:
==> file rt
rt: Mach-O 64-bit executable x86_64
==>
file
คำสั่งโดยทั่วไปมีลักษณะที่หลายชนิดของไฟล์และพยายามที่จะระบุได้ สำหรับ OSX executables คุณจะเห็นสิ่งเหล่านี้อย่างน้อยหนึ่งอย่าง: i386, x86_64 และ ppc ตามลำดับซึ่งเป็นสถาปัตยกรรมแบบ intel / amd แบบ 32 บิต, แบบ Intel / amd แบบ 64 บิตและแบบสถาปัตยกรรมกำลังของพีซี (ค่อนข้างเก่า ตอนนี้) ดังนั้นคุณต้องกังวลกับ i386 (แอปพลิเคชัน 32 บิต) และ x86_64 (แอปพลิเคชัน 64 บิต) เท่านั้น
สำหรับการใช้งานแพ็กเกจหนึ่งควรคลิกขวาและแสดงบรรจุภัณฑ์ ในแอพส่วนใหญ่ภายใต้contents → macOS
หนึ่งจะพบว่าปฏิบัติการ file
เส้นทางของมันควรจะใช้เป็นอาร์กิวเมนต์สำหรับ
file /Applications/BitTorrent.app/Contents/MacOS/BitTorrent
Mach-O executable i386
นั่นหมายความว่าอย่างไร ?
i386
ฯลฯ คุณช่วยเพิ่มการอ้างอิงได้ไหม?
file
คำสั่งโดยทั่วไปมีลักษณะที่หลายชนิดของไฟล์และพยายามที่จะระบุได้ สำหรับ OSX ที่ปฏิบัติการได้คุณจะเห็นอย่างน้อยหนึ่งอย่างต่อไปนี้: i386
, x86_64
และppc
ซึ่งตามลำดับคือสถาปัตยกรรม intel / amd แบบ 32 บิต, สถาปัตยกรรม intel / amd 64 บิต, และสถาปัตยกรรมพีซีกำลัง (หลังค่อนข้างเก่าแล้วในตอนนี้ ) ดังนั้นคุณต้องกังวลกับ i386 (แอปพลิเคชัน 32 บิต) และ x86_64 (แอปพลิเคชัน 64 บิต) เหตุผลเดียวที่พวกเขามีความสำคัญก็คือเพราะ Apple กำลังลดการสนับสนุนแอปพลิเคชัน 32 บิต
ฉันยังคงมี "ปลั๊กอินไม่ตอบสนองอย่างรวดเร็วเพียงพอในขณะที่รวบรวมข้อมูลนี้" ปัญหาและไม่สามารถแก้ไขได้โดยใช้วิธีการใด ๆ ที่แนะนำ
ปรากฎว่ามีเครื่องมือบรรทัดคำสั่งที่เรียกsystem_profiler
ว่าให้ข้อมูลเดียวกัน
ดังนั้นฉันจึงไปที่แหล่งข้อมูลและเขียนสคริปต์ ruby เล็กน้อยเพื่อรวบรวมรายการที่มีข้อมูลเพิ่มเติมเกี่ยวกับที่ตั้งของแอปพลิเคชันและแหล่งที่มาของการติดตั้ง (เมื่อมี)