Synopsis
arch
arch [-32] [-64] [[-arch_name | -arch arch_name]...] [-c] [-d envname]... [-e envname=value]...
[-h] prog [args ...]
Description
arch komutu, hiçbir argüman olmadan çağrıldığında makinenin mimari türünü görüntüler.
arch komutunun diğer bir kullanım amacı ise evrensel bir ikilinin (universal binary) seçilen bir mimarisini çalıştırmaktır. Evrensel bir ikili, farklı mimarilerde çalışabilen kodlar içerir. Varsayılan olarak işletim sistemi, işlemci türüyle en yakın eşleşen mimariyi seçer. 64-bit bir işlemcide 64-bit bir mimari, 32-bit bir mimariye tercih edilir; 32-bit bir işlemcide ise yalnızca 32-bit mimariler çalışabilir.
En doğal mimari mevcut olmadığında, işletim sistemi başka bir mimari seçmeye çalışır. 64-bit işlemcilerde 32-bit bir mimari denenir. Aksi takdirde hiçbir mimari çalıştırılmaz ve hata oluşur.
arch komutu, işletim sisteminin normal seçim sırasını değiştirmek için kullanılabilir. En yaygın kullanım, 64-bit bir işlemcide 64-bit mimari mevcut olsa bile 32-bit mimariyi seçmektir.
arch_name argümanı, şu anda desteklenen mimarilerden biri olmalıdır:
i386 32-bit intel
x86_64 64-bit intel
x86_64h 64-bit intel (haswell)
arm64 64-bit arm
arm64e 64-bit arm (Apple Silicon)
Eğer ikili (binary) arch_name için kod içermiyorsa, arch komutu yakın bir eşleşme seçmeye çalışabilir. Eğer arm64 belirtilmişse ve bulunamazsa, bir sonraki olarak arm64e denenecektir. Bu durumda, mimarilerin deneneceği sıranın garantisi yoktur.
Mimarinin önüne ya bir kısa çizgi koyun ya da (diğer komutlarla uyumluluk için) -arch ifadesini ve ardından mimariyi kullanın.
Birden fazla mimari belirtilirse işletim sistemi, mevcut işlemcide desteklenmeyen veya evrensel ikilide bulunmayan mimarileri atlayarak her birini sırayla deneyecektir.
Diğer seçenekler şunlardır:
-32: Donanımın yerel 32-bit mimarisini mimari listesine ekler.-64: Donanımın yerel 64-bit mimarisini mimari listesine ekler.-c: Çalıştırılacak komuta aktarılacak olan çevre (environment) değişkenlerini temizler.-d envname: Belirtilen çevre değişkenini, çalıştırılacak komuta aktarılacak olan çevreden siler.-e envname=value: Belirtilen değeri, çalıştırılacak komuta aktarılacak olan çevredeki adı geçen çevre değişkenine atar. Aynı ada sahip mevcut herhangi bir çevre değişkeninin üzerine yazılır.-h: Bir kullanım mesajı yazdırır ve çıkış yapar.
prog argümanı, çalıştırılacak komuttur ve ardından komuta aktarılacak argümanlar gelir. Tam veya kısmi bir yol (path) olabilir; tek bir ad belirtildiğinde ise kullanıcının komut arama yolunda (PATH) aranır.
Komut satırında hiçbir mimari belirtilmemişse, arch komutu prog argümanının temel adını (basename) alır ve bu temel ada ve .plist uzantısına sahip ilk özellik listesi (property list) dosyasını, standart alanların her birindeki archSettings alt dizininde aşağıdaki sırayla arar:
~/Library/archSettings Kullanıcı ayarları
/Library/archSettings Yerel ayarlar
/Network/Library/archSettings Ağ ayarları
/System/Library/archSettings Sistem ayarları
Bu özellik listesi (property list), mimari sırası tercihlerini ve gerçek yürütülebilir dosyanın tam yolunu içerir. Özellik listesi dosya biçiminin bir örneği için lütfen ÖRNEKLER (EXAMPLES) bölümüne bakın.
arch komutuna bağlantılar (links) oluşturmak Farklı bir adla arch komutuna bir bağlantı (link) oluşturulduğunda, ilgili özellik listesi dosyasını bulmak için bu ad kullanılır. Böylece, diğer komutlar özel mimari seçim sırasına sahip olacak şekilde sarmalanabilir (wrap).
Kodun içindeki bazı mantıksal işlemler nedeniyle, arch komutuna verilen sabit bağlantılar (hard links) düzgün çalışmayabilir. Sabit bağlantı kullanmaktan kaçınmak ve arch komutu için yalnızca sembolik bağlantılar (symbolic links) kullanmak en iyisidir.
Environment
Mimari sırası tercihlerini sağlamak için ARCHPREFERENCE çevre değişkeni kullanılabilir. İlgili özellik listesi dosyası aranmadan önce bu değişken kontrol edilir.
ARCHPREFERENCE çevre değişkeninin değeri, noktalı virgüllerle ayrılmış bir veya daha fazla belirteçten (specifier) oluşur. Bir belirteç, iki nokta üst üste ile ayrılmış bir, iki veya üç alandan meydana gelir. Sırayla belirtilen mimariler virgülle ayrılır ve son (zorunlu) alanı oluşturur. Belirtilmişse ilk alan, söz konusu program adıyla eşleştiğinde bu belirteci seçen bir program adıdır. Ad alanı boşsa veya ad alanı yoksa, belirteç herhangi bir program adıyla eşleşir. Bu nedenle belirteçlerin sıralaması önemlidir ve adı olmayan belirteç en sonda yer almalıdır.
arch komutu doğrudan çağrıldığında, prog adı yürütülebilir dosyanın yol bilgisini sağlar (muhtemelen komut arama yolu aracılığıyla). Bir ARCHPREFERENCE belirtecinde bir ad belirtildiğinde, yol bilgisi alternatif olarak addan sonra gelen ikinci bir alan olarak belirtilebilir. arch komutu bir bağlantı aracılığıyla dolaylı olarak çağrıldığında bu yol bilgisinin belirtilmesi zorunludur. Belirteçte ikinci bir alan olarak belirtilmemişse, yürütülebilir dosyanın yolu ilgili özellik listesi dosyasında aranacaktır.
Examples
archSettings Özellik Listesi (Property List) Biçimi
Bu, yukarıda belirtilen archSettings konumlarından birinde bulunması beklenen bir özellik listesi dosyası örneğidir:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>ExecutablePath</key>
<string>$execpath</string>
<key>PreferredOrder</key>
<array>
<string>x86_64</string>
<string>arm64</string>
</array>
<key>PropertyListVersion</key>
<string>1.0</string>
</dict>
</plist>
ARCHPREFERENCE Değerleri
i386,x86_64,x86_64h,arm64,arm64e
Herhangi bir adla eşleşen bir belirteç.
foo:i386,x86_64,x86_64h,arm64,arm64e
foo adlı programla eşleşen bir belirteç (yürütülebilir dosyanın tam yolu foo.plist dosyasındadır).
foo:/op/bin/boo:i386,x86_64,x86_64h,arm64,arm64e
Tüm alanları belirtilmiş bir belirteç.
baz:i386;x86_64,x86_64h,arm64,arm64e
baz için bir belirteç ve diğer tüm adlarla eşleşecek ikinci bir belirteç.
See Also
machine(1)
Bugs
Yorumlayıcı (interpreter) bir arch komutuna giden bir bağlantı ise, arch komutunu bir yorumlayıcı betiği (interpreter script) üzerinde çalıştırmak düzgün çalışmayabilir.
macOS 26.4 15 Şubat 2021 macOS 26.4