ฉันจะรู้ได้อย่างไรว่าแอพ Mac ใดเป็นแบบ 32 บิต


28

เมื่อวันที่ 28 มิถุนายน 2017 แอปเปิ้ลประกาศว่า

macOS High Sierra จะเป็น macOS รุ่นล่าสุดเพื่อรองรับแอพ 32 บิตโดยไม่สูญเสียประสิทธิภาพ

ฉันจะทราบได้อย่างไรว่าแอพใดใน Mac ของฉันเป็นแบบ 32 บิตเพื่อให้ฉันสามารถดูว่าฉันจำเป็นต้องอัพเกรดพวกเขาหรือไม่?


1
พวกเขากำลังจะสร้างการ์ดวิดีโอ 64 บิตของตัวเองหรือไม่?

2
คุณหมายถึงอะไร "การ์ดวิดีโอ 64- บิต" @ Physics-Compute ฉันคิดว่าคุณหมายถึงแบนด์วิดธ์หน่วยความจำ? ที่ไม่เกี่ยวข้องกับการเป็นพยานของโปรเซสเซอร์หรือระบบปฏิบัติการที่รองรับ คุณไม่จำเป็นต้องใช้การ์ดวิดีโอ 64 บิตในระบบปฏิบัติการ 64 บิต ในความเป็นจริง 64 บิตการ์ดทำงานได้ดีบนระบบปฏิบัติการ 32 บิต (ซึ่งไม่ได้เป็นของหลักสูตรที่แท้จริงของแอป)
โคดี้เกรย์

1
@CodyGray ฉันจะถือว่ามันหมายถึงจำนวนบิตที่อยู่ที่รองรับการดำเนินงาน DMA มันเป็นปัญหาถ้าคุณมีหน่วยความจำมากกว่าที่สามารถแก้ไขได้ด้วย 32 บิตและคุณได้จัดสรรบัฟเฟอร์สำหรับ DMA ซึ่งคุณต้องบอกชิ้นส่วนของฮาร์ดแวร์ 32 บิตเกี่ยวกับ
kasperd

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

1
ไดรเวอร์วิดีโอไม่สามารถเป็น 32 บิตได้เนื่องจากเคอร์เนล 64 บิตไม่สามารถโหลด / ใช้ไดรเวอร์ 32 บิตได้ ผู้ผลิตการ์ดแสดงผลได้ผลิตไดรฟ์ 64 บิตมาระยะหนึ่งแล้วและพวกเขาก็ต้องทำเช่นนี้กับระบบปฏิบัติการอื่นเช่นกันดังนั้นจึงไม่ใช่ข้อเสนอที่บ้า และคนขับจะจัดการกับสิ่ง DMA ที่ kasperd กำลังพูดถึงดังนั้นมันจึงไม่ใช่ปัญหาเช่นกัน
Cody Gray

คำตอบ:


27

วิธีหนึ่งในการระบุว่าแอป 32 บิตที่คุณยังใช้อยู่คือการใช้ตัวเลือกข้อมูลระบบภายใต้เกี่ยวกับ Mac เครื่องนี้ ขั้นตอนที่แน่นอนนั้นแตกต่างกันไปตามรุ่นของ macOS ที่คุณกำลังใช้งาน แต่ด้านล่างเป็นขั้นตอนกว้าง ๆ ที่คุณควรปฏิบัติตามเพื่อให้เหมาะกับสถานการณ์ของคุณ:

  1. คลิกที่เมนู Apple
  2. เลือกเกี่ยวกับ Mac เครื่องนี้
  3. ในหน้าต่าง About This Mac ที่ปรากฏขึ้นให้คลิกที่System Report...ปุ่มด้านล่างซ้าย (หากคุณใช้ระบบปฏิบัติการรุ่นเก่าคุณอาจต้องคลิกที่More Info...ปุ่มใกล้กับกึ่งกลางด้านล่าง)
  4. สิ่งนี้จะเปิดหน้าต่าง System Information (หรือหน้าต่าง System Profiler ใน OS เวอร์ชั่นที่เก่ากว่า)
  5. ในแถบด้านข้างทางซ้ายคุณจะเห็นจำนวนหัวเรื่องและหัวเรื่องย่อย
  6. ใต้หัวข้อซอฟต์แวร์ (เป็นรายการที่ 3 ลงมา) คุณจะเห็นแอปพลิเคชันที่มีป้ายกำกับหัวข้อย่อย คลิกที่นี่
  7. ในส่วนหลักของหน้าต่างทางด้านขวามือคุณจะเห็นรายการแอพปรากฏขึ้น อดทนเพราะอาจใช้เวลาสักครู่ในการเติม
  8. เมื่อรายการปรากฏขึ้นคุณจะเห็นส่วนหัวของคอลัมน์ที่ด้านบน
  9. คอลัมน์สุดท้ายมีป้ายกำกับ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 ด้านบน


1
มันทำให้ฉันหมดเวลากับข้อความ "ปลั๊กอินไม่ตอบสนองอย่างรวดเร็วเพียงพอในขณะที่รวบรวมข้อมูลนี้"
JBis

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

ปัญหาเดียวกันเมื่อเปิดโดยตรงจาก / Applications / Utilities
JBis

27

ใน Finder กดcmdFเพื่อรับหน้าต่างค้นหา

  • เลือกค้นหา: Mac เครื่องนี้
  • เข้าสู่เกณฑ์การค้นหาแรกและเลือก " อื่น ๆ ... " และที่นี่ " สถาปัตยกรรมที่ดำเนินการได้ " " คือ " " i386 "
  • กดปุ่ม + และเพิ่มเกณฑ์ที่สอง " สถาปัตยกรรมที่ดำเนินการได้ " " ไม่ใช่ " " x86_64 "

    ป้อนคำอธิบายรูปภาพที่นี่

และคุณจะได้รับรายชื่อแอป i386 เท่านั้น (เช่น 32 บิต)


ในเทอร์มินัลสิ่งนี้ทำได้ด้วย:

mdfind "(kMDItemExecutableArchitectures == 'i386') && (kMDItemExecutableArchitectures != 'x86_64')"

แปลกสำหรับฉันวิธีนี้รับไฟล์ PDF ไม่กี่ปีที่ผ่านมาเช่น "ยินดีต้อนรับสู่เสือดาว" มิฉะนั้นดูเหมือนว่าจะทำงานได้ดี
Thunderforge

3
@Thunderforge "Welcome to Leopard" ไม่ใช่. pdf แต่เป็นแอป IIRC เมื่อคุณเปิดมันจะเลือกไฟล์ PDF เป็นภาษาของคุณและเปิดใน Preview
มานูเอล

@Manuel น่าสนใจ! ฉันถูกไล่ออกจากความเป็นจริงมันมีไอคอน PDF ไม่ได้เกิดขึ้นกับฉันเลยว่ามันเป็นแอพที่เลือก PDF สำหรับคุณ
Thunderforge

ฉันเพิ่งสังเกตเห็นว่าวิธีนี้ไม่พบแอป~/Library/Application Supportเช่นเกม Steam โซลูชันอื่นทำ คุณรู้หรือไม่ว่ามีวิธีใดที่จะแก้ไขการค้นหาเพื่อรวมสิ่งนั้น?
Thunderforge

1
@Thunderforge เวอร์ชันเทอร์มินัลค้นหาเกม Steam
Andrea Lazzarotto

3

คำตอบอื่น ๆ ที่ฉันเข้าใจจะแสดงรายการแอป 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


3

คำสั่ง Terminal หนึ่งบรรทัดนี้จะรวบรวมรายการแอพลงในไฟล์ข้อความบนเดสก์ท็อปของคุณ มันคว้า 6 บรรทัดก่อนและ 2 บรรทัดหลังจากเกิด "(Intel): ไม่มี" ทุกครั้งในแบบสอบถาม อย่างไรก็ตามมันไม่ได้ขุดลงในไบนารีหรือไลบรารีรองรับ 32 บิตสำหรับแอพ 64 บิตที่คอมไพล์แล้ว รายการนั้นกว้างขวางมากขึ้นและฉันไม่สามารถค้นหาทรัพยากรใด ๆ ที่จัดการปัญหาในระดับที่ลึกกว่าหากเป็นปัญหา

system_profiler SPApplicationsDataType | grep -B 6 -A 2 "(Intel): No" > ~/Desktop/32BitAppList.txt

2

เมื่อคุณต้องการตรวจสอบแอปพลิเคชันเดียว:

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เส้นทางของมันควรจะใช้เป็นอาร์กิวเมนต์สำหรับ


1
สำหรับฉันได้รับfile /Applications/BitTorrent.app/Contents/MacOS/BitTorrent Mach-O executable i386นั่นหมายความว่าอย่างไร ?
ankii

หมายความว่าแอปพลิเคชันนี้สามารถเรียกใช้งานได้แบบ 32 บิต และความหมายคือมันจะไม่สามารถทำงานภายใต้ระบบปฏิบัติการ 64 บิตล่าสุดของ Apple
fyngyrz

ฉันไม่สามารถหาตารางที่ฉันสามารถหาความหมายของสิ่งต่าง ๆ เช่นi386ฯลฯ คุณช่วยเพิ่มการอ้างอิงได้ไหม?
ankii

fileคำสั่งโดยทั่วไปมีลักษณะที่หลายชนิดของไฟล์และพยายามที่จะระบุได้ สำหรับ OSX ที่ปฏิบัติการได้คุณจะเห็นอย่างน้อยหนึ่งอย่างต่อไปนี้: i386, x86_64และppcซึ่งตามลำดับคือสถาปัตยกรรม intel / amd แบบ 32 บิต, สถาปัตยกรรม intel / amd 64 บิต, และสถาปัตยกรรมพีซีกำลัง (หลังค่อนข้างเก่าแล้วในตอนนี้ ) ดังนั้นคุณต้องกังวลกับ i386 (แอปพลิเคชัน 32 บิต) และ x86_64 (แอปพลิเคชัน 64 บิต) เหตุผลเดียวที่พวกเขามีความสำคัญก็คือเพราะ Apple กำลังลดการสนับสนุนแอปพลิเคชัน 32 บิต
fyngyrz

1

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

ปรากฎว่ามีเครื่องมือบรรทัดคำสั่งที่เรียกsystem_profilerว่าให้ข้อมูลเดียวกัน

ดังนั้นฉันจึงไปที่แหล่งข้อมูลและเขียนสคริปต์ ruby ​​เล็กน้อยเพื่อรวบรวมรายการที่มีข้อมูลเพิ่มเติมเกี่ยวกับที่ตั้งของแอปพลิเคชันและแหล่งที่มาของการติดตั้ง (เมื่อมี)

คุณสามารถค้นหาสคริปต์ที่นี่

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