arch-test - mendeteksi arsitektur yang dapat dijalankan oleh kernel Anda
arch-test [-n] arch-test [-n] [-c <chroot>] <arch>
Saat dipanggil tanpa argumen, arch-test menampilkan daftar arsitektur yang dapat dieksekusi oleh kernel Anda yang sedang berjalan, satu per baris, menggunakan nama arch Debian. Libc atau pustaka lain tidak diperlukan atau dicentang — sebuah arch dicantumkan jika kode mesinnya dapat dijalankan dan ABI syscall yang sesuai didukung oleh kernel. Artinya, Anda dapat menjalankan arsitektur ini di chroot atau wadah, menjalankannya menggunakan multiarch, menjalankan binari statis, dll. Kemampuan untuk menjalankan arsitektur tambahan dapat diperoleh melalui binfmt s di Linux, emulasi Linux di BSD, dll.
Sebuah arsitektur dianggap dapat dijalankan hanya jika kernel Anda dapat menjalankan biner yang tidak dimodifikasi, tanpa langkah tambahan seperti mengkompilasi ulang (Raspbian armhf) atau menggunakan brandelf pada biner yang ingin Anda jalankan ( Emulasi FreeBSD dari Linux). Selain itu, karena Debian membutuhkan 686 pada i386 sejak rilis peregangan, dukungan 686 diperiksa.
Jika -n ditentukan, arch-test akan mencoba menonaktifkan emulator yang dikenal (saat ini qemu dan wine). Perhatikan bahwa emulator seluruh mesin tampaknya asli sejauh menyangkut kernel.
Dengan -c <chroot>, pengujian dilakukan di dalam chroot yang diberikan (qemu-user sebelum 2.12 mengharuskan juru bahasa untuk tinggal di dalam chroot ). Hak istimewa root diperlukan di sini.
Saat dipanggil dengan nama arch sebagai argumen, arch-test menguji arsitektur yang ditentukan. Pesan ramah-manusia akan dicetak, dan kode keluarnya bisa berupa:
selamat, arch dapat dijalankan di kernel anda
kegagalan
tidak dapat memeriksa — arch-test tidak memiliki pembantu untuk lengkungan ini
Petunjuk Shell: dengan
set -e
Anda menulis:
ret=0; arch-test $ARCH || ret=$?
Deteksi dilakukan oleh program kecil yang terletak di /usr/lib/arch-test/. Program-program ini memeriksa apakah kernel yang sedang berjalan dapat mengeksekusi binari dari arsitektur tertentu. Saat dijalankan, jika berhasil, setiap program tersebut mencetak "ok" di stdout dan mengembalikan kode keluar 0.
Ketika pemeriksaan gagal, program pembantu ini mungkin mati secara mengerikan — selalu dengan kode keluar bukan nol. Biasanya kernel akan melihat ketidakcocokan dan dengan baik membatalkan percobaan, tetapi dalam beberapa kasus yang nyaris gagal, kegagalannya lebih berantakan, seperti SIGILL atau SIGSEGV. Jika Anda ingin menjalankan helper secara langsung, Anda ingin mengalihkan stderr ke /dev/null dan menonaktifkan core dumps (ulimit -c 0).
menghitung arsitektur
menguji satu lengkungan