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ć?


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.


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')"

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.


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

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.


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 .

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.