Periksa apakah ia32-libs diinstal

0

Saya membuat aplikasi web dan saya perlu memeriksa apakah ia32-libs diinstal. Ini perlu perintah non sudo karena akan dijalankan oleh www-data. Bisakah seseorang membantu saya? Saya telah mencoba mendaftar paket dalam aptitude dan dpkg tanpa hasil.

PS: Saya ada di distro berbasis Debian.

Zinglish
sumber

Jawaban:

0

Anda dapat menanyakan status paket dengan baris perintah berikut (tidak diperlukan hak akses root):

dpkg --get-selections ia32-libs

Jika paket diinstal, Anda akan mendapatkan hasil berikut (mis. Ubuntu Precise):

ia32-libs                                       install

jika tidak, Anda akan mendapatkan sesuatu yang berbeda (respons aktual tergantung pada pengaturan lokal Anda).

Namun, pada Debian dan Ubuntu baru-baru ini ia32-libs telah dibuat menjadi paket transisi yang mendukung solusi multiarch sejati. Anda dapat menanyakan arsitektur Anda saat ini dengan

dpkg-architecture

yang pada x64 akan memiliki garis

DEB_HOST_ARCH=amd64

dan Anda dapat memeriksa apakah dukungan i386 telah diaktifkan dengan perintah berikut:

dpkg --print-foreign-architectures

Jawabannya akan mencakup i386 jika lib arsitektur yang diperlukan ada di sana.

Untuk menambahkan arsitektur, seseorang harus menjalankan

dpkg --add-architecture i386
jpe
sumber
Saya sudah mencoba ini, saya tidak memiliki ia32-libs diinstal pada mesin saya dan saya mendapatkan balasan dari perintah itu mengatakan itu tidak diinstal. Tidak yakin bagaimana lagi PC saya menjalankan aplikasi 32 bit. Apakah ada cara untuk menentukan apakah mesin dapat menjalankan kode x86?
Zinglish
Kamu benar. Hal-hal terus berubah, jika tidak hidup akan terlalu mudah. Di Ubuntu Anda masih memiliki ia32-libs, tetapi dalam Debian baru-baru ini adalah arsitektur tambahan. Menambahkan tambahan yang relevan ke jawaban saya. Anda mungkin perlu mengakomodasi beberapa cara yang mungkin untuk memeriksa dukungan ia32 ke dalam aplikasi Anda.
jpe
Ah brilian, terima kasih banyak pria!
Zinglish
Itu dpkg --print-foreign-architectures perintah berfungsi di Ubuntu juga, jadi itu harus menjadi cara aman untuk mencapai tujuan Anda.
jpe
0

Beberapa cara Anda dapat melakukan ini:

dpkg -l | grep ia32-libs

dpkg --get-selections | grep ia32-libs

Anda akan mendapatkan daftar paket yang diinstal sesuai permintaan. Jika tidak ada yang dikembalikan, Anda tidak memiliki paket.

Sumber: Wiki Debian

Matthew Williams
sumber
Saya tidak menandai ini sebagai jawaban karena saya merasa seperti yang saya lakukan memberi jawaban yang lebih baik, namun jawaban ini juga berfungsi.
Zinglish
dpkg -l | grep ia32-libs mengembalikan apa-apa pada debian modern dengan arsitektur i386 diinstal dan paket transisi ia32-libs dihapus. Jadi itu bisa mengarah pada kesimpulan yang salah.
jpe
@ jpe | Tidak mengembalikan apa pun ketika Anda menjalankannya terhadap paket yang tidak ada pada sistem. Itu adalah hasil yang diharapkan seperti yang saya sebutkan di posting saya.
Matthew Williams
@MatthewWilliams benar, tetapi ketika arsitektur i386 diinstal, maka program yang perlu dijalankan OP akan berjalan walaupun paket ia32-libs dihapus. Dengan demikian solusi Anda dapat menghasilkan negatif palsu.
jpe
@ jpe | Senang mendengarnya. Terima kasih untuk informasi.
Matthew Williams