Как я могу узнать, какие приложения Mac 32-битные?

28

28 июня 2017 года Apple объявила, что

macOS High Sierra будет последним выпуском macOS, который будет поддерживать 32-битные приложения без компромиссов.

Как я могу узнать, какие приложения на моем Mac являются 32-разрядными, чтобы узнать, нужно ли мне их обновлять?

Thunderforge
источник
1
Они собираются делать свою собственную 64-битную видеокарту?
2
Что именно вы имеете в виду под «64-битной видеокартой», @ Physics-Compute? Я полагаю, вы имеете в виду пропускную способность памяти? Это не имеет ничего общего с разрядностью процессора или поддерживается операционной системой. Вам не нужна 64-битная видеокарта в 64-битной ОС; на самом деле, 64-битные видеокарты прекрасно работают на 32-битных ОС (который не является , конечно, верно приложений).
Коди Грей
1
@CodyGray Я бы предположил, что это относится к числу адресных битов, которые он поддерживает для операций DMA. Это проблема, если у вас больше памяти, чем может быть адресовано 32 битами, и вы выделили буфер для DMA, о котором вам нужно рассказать о 32-битном оборудовании.
Касперд
1
Извините, я точнее имел в виду 64-битные драйверы. Разве графические драйверы в подавляющем большинстве случаев не являются 32-разрядными, что требует, чтобы все процессы, которые их используют, также были в 32-разрядном режиме? Процесс, который сегодня обычно является 64-битным, должен использовать IPC с 32-битным процессом для связи с 32-битными драйверами видеокарты. Нельзя допустить, чтобы 32-битные драйверы или процессы были проблемой, если производители видеокарт не сделали 64-битные драйверы, нет?
1
Видеодрайверы не могут быть 32-разрядными, поскольку 64-разрядное ядро ​​не может загружать / использовать 32-разрядные драйверы. Производители видеокарт уже некоторое время выпускают 64-разрядные драйверы, и им приходится делать это и для других операционных систем, так что это не совсем сумасшедшее предложение. И драйвер справится с вещами DMA, о которых говорит Касперд, так что это тоже не проблема.
Коди Грей,

Ответы:

27

Один из способов определить, какие 32-разрядные приложения вы все еще используете, - это использовать параметр «Сведения о системе» в разделе «Об этом Mac». Точные шаги различаются в зависимости от используемой версии macOS, но ниже приведены общие шаги, которые вы должны выполнить в соответствии с вашими обстоятельствами:

  1. Нажмите на меню Apple
  2. Выберите Об этом Mac
  3. В открывшемся окне «Об этом Mac» нажмите System Report...кнопку внизу слева (если вы используете более старую ОС, вам может потребоваться нажать More Info...кнопку рядом с центром внизу).
  4. Откроется окно «Информация о системе» (или окно «Сведения о системе» в более старых версиях ОС).
  5. В боковой панели слева вы увидите несколько заголовков и подзаголовков.
  6. Под заголовком «Программное обеспечение» (он третий) вы увидите подзаголовок «Приложения». Нажмите на это.
  7. В основной части окна справа вы увидите список приложений. Будьте терпеливы, так как это может занять некоторое время для заселения.
  8. Как только список появится, вы увидите заголовки столбцов в верхней части.
  9. Последний столбец помечен. 64-Bit (Intel)Нажмите на заголовок этого столбца, чтобы отсортировать приложения по тому, являются ли они 64-разрядными (т. Е. Они будут иметь да или нет в каждом приложении).

Обратитесь к изображению ниже в качестве примера:

введите описание изображения здесь

ПРИМЕЧАНИЕ. На изображении выше я намеренно не отсортировал последний столбец, поэтому вы можете видеть записи, в которых указаны Да и Нет. Итак, в приведенном выше примере вы увидите, что iMovie v10.1.6 является 64-битным приложением, а iMovie 9.0.9 не является 64-битным.


Редактировать - если вышеуказанные шаги приводят к ошибке

Я видел сообщения о том, что небольшое количество пользователей получают сообщение об ошибке «Плагин не отвечает достаточно быстро при сборе этой информации» во время ожидания заполнения списка.

В этом случае выйдите из приложения System Information (или приложения System Profiler в более старых версиях macOS) и запустите его снова, но на этот раз пропустите шаги с 1 по 4 и перейдите непосредственно в папку «Программы / утилиты» и откройте приложение System Information (или System Приложение 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')"
klanomath
источник
Странно для меня, этот метод берет несколько файлов PDF лет назад, например, «Добро пожаловать в Leopard». В противном случае, кажется, работает нормально.
Thunderforge
3
@Thunderforge «Добро пожаловать в Leopard» - это не PDF-файл, а приложение IIRC. Когда вы открываете его, он выбирает ваш язык PDF и открывает его в Preview.
Мануэль
@ Мануэль Интересно! Я был сбит с толку тем, что у него есть значок PDF. Мне даже не пришло в голову, что это было приложение, которое выбрало PDF для вас.
Thunderforge
Я только что заметил, что этот метод не находит приложения ~/Library/Application Support, такие как игры Steam. Другое решение делает. Знаете ли вы, есть ли способ изменить поиск, чтобы включить это?
Thunderforge
1
@ Thunderforge версия терминала находит игры Steam.
Андреа Лаззаротто
3

Другие ответы, которые, насколько я понимаю, покажут, приведут список 32-битных приложений macOS (и, возможно, некоторых 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

Эта однострочная команда терминала соберет список приложений в текстовый файл на вашем рабочем столе. Он захватывает 6 строк до и 2 строки после каждого вхождения «(Intel): No» в запросе. Однако он не копает 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 вы почти всегда увидите один или несколько из них: i386, x86_64 и ppc, которые соответственно являются 32-разрядными архитектурами intel / amd, 64-разрядными архитектурами intel / amd и мощными архитектурами ПК (они довольно старые сейчас.) Так что вам действительно нужно иметь дело только с i386 (32-битные приложения) и x86_64 (64-битные приложения).

Для упакованных приложений нужно щелкнуть правой кнопкой мыши и показать содержимое пакета . В большинстве приложений под contents → macOSодним найдется исполняемый файл. Его путь должен использоваться в качестве аргумента для file.

fyngyrz
источник
1
Ибо file /Applications/BitTorrent.app/Contents/MacOS/BitTorrentя получаю Mach-O executable i386. Что это значит ?
анки
Это означает, что приложение является 32-битным исполняемым файлом; и подразумевается, что он не сможет работать под самыми последними 64-разрядными операционными системами Apple.
fyngyrz
Я не мог найти таблицу, где я мог бы найти значения таких вещей, как и i386т.д. .. Не могли бы вы добавить такую ​​ссылку, пожалуйста?
анки
Команда в fileосновном просматривает многие виды файлов и пытается их идентифицировать. Для OSX исполняемых файлов, вы почти всегда увидите один или несколько из них: i386, x86_64и ppcкоторые , соответственно , являются 32-разрядными Intel / AMD архитектуры, 64-разрядные Intel / AMD архитектуры и архитектуры Power PC (последние являются довольно стары. Таким образом, вам действительно нужно иметь дело только с i386 (32-разрядные приложения) и x86_64 (64-разрядные приложения). Единственная причина, по которой они имеют значение, заключается в том, что Apple отказывается от поддержки 32-разрядных приложений.
fyngyrz
1

У меня постоянно появлялось «Плагин не отвечал достаточно быстро при сборе этой информации». проблема, и не может решить ее, используя любой из предложенных методов.

Оказывается, есть инструмент командной строки, system_profilerкоторый предоставляет ту же информацию.

Поэтому я пошел прямо к источнику и написал небольшой скрипт ruby ​​для составления списка с дополнительной информацией о том, где находится приложение и источник установки (если он доступен).

Вы можете найти сценарий здесь .

видур
источник