Jak mogę dowiedzieć się, które aplikacje Mac są 32-bitowe?

28

28 czerwca 2017 r. Apple ogłosiło to

macOS High Sierra będzie ostatnią wersją macOS obsługującą aplikacje 32-bitowe bez kompromisów.

Jak mogę dowiedzieć się, które aplikacje na komputerze Mac są 32-bitowe, aby sprawdzić, czy muszę je zaktualizować?

Thunderforge
źródło
1
Czy zamierzają stworzyć własną 64-bitową kartę graficzną?
2
Co dokładnie rozumiesz przez „64-bitową kartę wideo”, @ Physics-Compute? Zakładam, że masz na myśli przepustowość pamięci? Nie ma to nic wspólnego z bitowością procesora lub obsługiwaną przez system operacyjny. Nie potrzebujesz 64-bitowej karty wideo w 64-bitowym systemie operacyjnym; W rzeczywistości, 64-bitowe karty graficzne działać na 32-bitowych systemów operacyjnych (co nie jest oczywiście prawdą aplikacjach).
Cody Gray
1
@CodyGray Zakładam, że odnosi się do liczby bitów adresu obsługiwanych przez operacje DMA. Jest to problem, jeśli masz więcej pamięci, niż można by rozwiązać za pomocą 32 bitów, i masz przydzielony bufor dla DMA, o którym musisz opowiedzieć kawałek 32-bitowego sprzętu.
kasperd
1
Przepraszam, miałem na myśli sterowniki 64-bitowe. Czy sterowniki graficzne nie są w przeważającej mierze 32-bitowe, co wymaga, aby wszystkie procesy, które ich używają, były również w trybie 32-bitowym? Proces, który zwykle jest obecnie 64-bitowy, musi korzystać z IPC z 32-bitowym procesem, aby rozmawiać ze sterownikami 32-bitowej karty wideo. Nie zezwalanie na sterowniki lub procesy 32-bitowe wydaje się problemem, jeśli producenci kart wideo nie stworzyli sterowników 64-bitowych, prawda?
1
Sterowniki wideo nie mogą być 32-bitowe, ponieważ jądro 64-bitowe nie może ładować / używać sterowników 32-bitowych. Producenci kart graficznych już od jakiegoś czasu produkują 64-bitowe sterowniki i muszą to robić także dla innych systemów operacyjnych, więc nie jest to szalona propozycja. A kierowca poradziłby sobie z rzeczami DMA, o których mówi kasperd, więc to też nie jest problem.
Cody Gray

Odpowiedzi:

27

Jednym ze sposobów określenia, z których 32-bitowych aplikacji nadal korzystasz, jest skorzystanie z opcji Informacje o systemie w sekcji Informacje o tym komputerze Mac. Dokładne kroki różnią się w zależności od używanej wersji systemu macOS, ale poniżej znajdują się ogólne kroki, które należy wykonać w zależności od okoliczności:

  1. Kliknij menu Apple
  2. Wybierz Informacje o tym komputerze Mac
  3. W wyskakującym oknie Informacje o tym komputerze Mac kliknij System Report...przycisk w lewym dolnym rogu (jeśli używasz starszego systemu operacyjnego, może być konieczne kliknięcie More Info...przycisku w pobliżu środkowego dołu).
  4. Otworzy się okno Informacje o systemie (lub okno Profil systemu w starszych wersjach systemu operacyjnego).
  5. Na pasku bocznym po lewej stronie zobaczysz kilka nagłówków i podtytułów.
  6. Pod nagłówkiem Software (trzeci w dół) zobaczysz podtytuł zatytułowany Aplikacje. Kliknij na to.
  7. W głównej części okna po prawej stronie pojawi się lista aplikacji. Bądź cierpliwy, ponieważ zaludnienie może trochę potrwać.
  8. Gdy pojawi się lista, zobaczysz nagłówki kolumn u góry.
  9. Ostatnia kolumna jest oznaczona etykietą 64-Bit (Intel)Kliknij nagłówek tej kolumny, aby posortować aplikacje według tego, czy są 64-bitowe (tzn. Będą mieć na liście każdą z nich Tak lub Nie ).

Patrz przykład poniżej:

wprowadź opis zdjęcia tutaj

UWAGA: Na powyższym obrazku celowo nie posortowałem ostatniej kolumny, aby można było zobaczyć wpisy z listą Tak i Nie. Tak więc w powyższym przykładzie zobaczysz, że iMovie 10.1.6 jest aplikacją 64-bitową, podczas gdy iMovie 9.0.9 nie jest 64-bitową.


Edytuj - jeśli powyższe kroki powodują błąd

Widziałem raporty, że niewielka liczba użytkowników otrzymuje komunikat o błędzie „Wtyczka nie zareagowała wystarczająco szybko podczas zbierania tych informacji” podczas oczekiwania na zapełnienie listy.

Jeśli tak się stanie, zamknij aplikację Informacje o systemie (lub aplikację System Profiler w starszych wersjach systemu macOS) i uruchom ponownie, ale tym razem pomiń kroki od 1 do 4 i przejdź bezpośrednio do folderu Aplikacje / Narzędzia i otwórz aplikację Informacje o systemie (lub System Aplikacja Profiler) bezpośrednio stamtąd. Po otwarciu wykonaj kroki od 5 do 8 powyżej.

Monomeeth
źródło
1
Upływa dla mnie limit czasu z komunikatem „Wtyczka nie zareagowała wystarczająco szybko podczas zbierania tych informacji”.
JBis
Dzięki @Josh za przypomnienie mi tej odpowiedzi. Pod koniec zeszłego roku uświadomiłem sobie, że jest to możliwy problem, ale zapomniałem, że odpowiedziałem na to pytanie! Właśnie zredagowałem swoją odpowiedź z możliwym obejściem, które działa dla większości użytkowników. Daj mi znać, jeśli nadal masz problemy.
Monomeeth
Ten sam problem podczas otwierania bezpośrednio z / Aplikacje / Narzędzia.
JBis
27

W Finderze naciśnij, cmdFaby wyświetlić okno wyszukiwania.

  • Wybierz Wyszukaj: ten komputer Mac
  • Kliknij pierwsze kryterium wyszukiwania i wybierz „ Inne ... ”, a tutaj „ Architektury wykonywalne ” „ Jest ” „ i386
  • Naciśnij przycisk + i dodaj drugie kryterium „ Architektury wykonywalne ” „ Nie jest ” „ x86_64

    wprowadź opis zdjęcia tutaj

a otrzymasz listę wszystkich aplikacji tylko i386 (tj. 32-bitowych).


W terminalu odbywa się to za pomocą:

mdfind "(kMDItemExecutableArchitectures == 'i386') && (kMDItemExecutableArchitectures != 'x86_64')"
klanomath
źródło
O dziwo dla mnie ta metoda zbiera kilka plików PDF sprzed lat, takich jak „Welcome to Leopard”. W przeciwnym razie wydaje się, że działa dobrze.
Thunderforge
3
@Thunderforge „Welcome to Leopard” nie jest plikiem .pdf, ale aplikacją IIRC. Po otwarciu wybiera język pdf i otwiera go w wersji zapoznawczej.
Manuel
@Manuel Ciekawe! Zaskoczyło mnie to, że ma ikonę PDF. Nawet nie przyszło mi do głowy, że to właściwie aplikacja, która wybrała dla ciebie plik PDF.
Thunderforge
Właśnie zauważyłem, że ta metoda nie znajduje aplikacji ~/Library/Application Support, takich jak gry Steam. Inne rozwiązanie tak. Czy wiesz, czy jest jakiś sposób zmodyfikować wyszukiwanie, aby to uwzględnić?
Thunderforge
1
@Thunderforge wersja terminalowa znajduje gry Steam.
Andrea Lazzarotto
3

Inne dotychczasowe odpowiedzi, z tego co rozumiem, będą zawierać 32-bitowe aplikacje macOS (i może jakieś 32-bitowe pliki binarne) w indeksie metadanych. Jeśli chcesz wyświetlić listę wszystkich 32-bitowych plików wykonywalnych tylko w swoim systemie, wypróbuj ten jeden-liniowy program:

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

Jeśli masz zainstalowane GNU findutils, prawdopodobnie można to znacznie uprościć. Część złożoności tutaj polega na przezwyciężeniu ograniczeń znalezisk BSD zawartych w macOS.

Kevin Mark
źródło
3

To jedno wierszowe polecenie terminalu zbierze listę aplikacji do pliku tekstowego na pulpicie. Pobiera 6 linii przed i 2 linie po każdym wystąpieniu „(Intel): Nie” w zapytaniu. Nie zagłębia się jednak w 32-bitowe pliki binarne lub biblioteki dla już skompilowanych aplikacji 64-bitowych. Ta lista jest znacznie obszerniejsza i nie mogę znaleźć żadnego zasobu, który mógłby rozwiązać głębszy problem, nawet jeśli jest to problem.

system_profiler SPApplicationsDataType | grep -B 6 -A 2 "(Intel): No" > ~/Desktop/32BitAppList.txt
Kevin Hagan
źródło
2

Gdy musisz tylko sprawdzić pojedynczą aplikację:

file myapplication

Na przykład mój ray tracer rt:

==> file rt
rt: Mach-O 64-bit executable x86_64
==>

fileKomenda zasadzie wygląda na wielu rodzajów plików i próbuje je zidentyfikować. W przypadku plików wykonywalnych OSX prawie zawsze zobaczysz jeden lub więcej z nich: i386, x86_64 i ppc, które są odpowiednio 32-bitowymi architekturami Intel / Amd, 64-bitowymi architekturami Intel / Amd i architekturami Power PC (te są dość stare teraz). Więc naprawdę musisz się martwić tylko o i386 (aplikacje 32-bitowe) i x86_64 (aplikacje 64-bitowe).

W przypadku aplikacji spakowanych należy kliknąć prawym przyciskiem myszy i pokazać zawartość opakowania . W większości aplikacji pod contents → macOSjednym znajdzie się plik wykonywalny. Jako argument należy użyć jego ścieżki file.

Fyngyrz
źródło
1
Bo file /Applications/BitTorrent.app/Contents/MacOS/BitTorrentrozumiem Mach-O executable i386. Co to znaczy ?
ankii
Oznacza to, że aplikacja jest 32-bitowym plikiem wykonywalnym; implikuje to, że nie będzie on mógł działać w najnowszych 64-bitowych systemach operacyjnych Apple.
fyngyrz
Nie mogłem znaleźć tabeli, w której mogłem znaleźć znaczenie takich rzeczy jak i386itp. Czy mógłbyś dodać takie odniesienie?
ankii
fileKomenda zasadzie wygląda na wielu rodzajów plików i próbuje je zidentyfikować. Dla plików wykonywalnych OSX, będziesz prawie zawsze zobaczyć jedną lub więcej z nich: i386, x86_64, i ppcktóre odpowiednio są 32-bitowe procesory Intel / AMD o architekturze 64-bitowej architektury Intel / AMD i architektury energią (te ostatnie są dość stary. ) Tak więc naprawdę musisz się martwić tylko i386 (aplikacje 32-bitowe) i x86_64 (aplikacje 64-bitowe). Jedynym powodem, dla którego mają znaczenie, jest to, że Apple rezygnuje z obsługi aplikacji 32-bitowych.
fyngyrz
1

Poważnie powtarzałem, że „Wtyczka nie zareagowała wystarczająco szybko podczas zbierania tych informacji”. problem i nie można go rozwiązać przy użyciu żadnej z sugerowanych metod.

Okazuje się, że istnieje narzędzie wiersza polecenia o system_profilertakiej samej informacji.

Poszedłem więc prosto do źródła i napisałem mały rubinowy skrypt, aby skompilować listę z dodatkowymi informacjami na temat lokalizacji aplikacji i źródła instalacji (jeśli jest dostępna).

Skrypt można znaleźć tutaj .

Vidur
źródło