ฉันจะตรวจสอบว่าคำนำหน้าไวน์ของฉันเป็น 32 บิตหรือ 64 บิตได้อย่างไร


16

ฉันเห็นหัวข้อมากมายที่อธิบายวิธีสร้างคำนำหน้า 32 บิต แต่ฉันต้องการตรวจสอบว่าคำนำหน้าที่ฉันใช้คือ 32 บิตหรือ 64 บิต เหตุผลที่ฉันถามคือฉันใช้ PlayOnLinux และฉันสร้างไดรฟ์เสมือน 32 บิต (เช่น X) ตอนนี้เมื่อฉันเปิด winetricks ในโฟลเดอร์ ~ / .PlayOnLinux / wineprefix, wineprefix จะให้ข้อความแก่ฉัน

คุณใช้ WINEPREFIX 64 บิต หากคุณพบปัญหาโปรดทดสอบใหม่ใน WINEPREFIX แบบ 32 บิตที่สะอาดก่อนที่จะรายงานข้อผิดพลาด

แต่เมื่อฉันเปิด wineprefix ใน ~ / .PlayOnLinux / wineprefix / X ข้อความไม่ปรากฏขึ้น

ฉันจะตรวจสอบว่าคำนำหน้าเป็น 32 vs 64 บิตได้อย่างไร

คำตอบ:


5

หากคุณใช้ PlayOnLinux คุณสามารถตรวจสอบเวอร์ชันที่ใช้ GUI - เปิด PlayOnLinux คลิก 'กำหนดค่า' ในโปรแกรมที่เกี่ยวข้องและดูบานหน้าต่างด้านซ้าย:

หรือคุณสามารถทำสิ่งที่ winetricks ทำ(ในเวอร์ชั่น20140817ประมาณ 3600 บรรทัด)ซึ่งตรวจสอบ wineprefix สำหรับการมีอยู่ของไดเรกทอรีWINEPREFIX/drive_c/windows/syswow64ซึ่งควรพบได้ใน 64 บิต windows / wineprefix แต่ไม่ใช่รุ่น 32 บิต การดำเนินการนี้ควรใช้กับคำนำหน้าไวน์ธรรมดาและภายใต้ PlayOnLinux


5

สิ่งที่คุณต้องทำคือเลือกดูไดรฟ์เสมือนของ PlayonLinux ไปที่ WINEPREFIX / drive_c / โฟลเดอร์และค้นหาโฟลเดอร์ Program Files

หากคุณเห็นเฉพาะไฟล์โปรแกรมและไม่มี ProgramFiles (x86) คุณจะใช้คำนำหน้าไวน์ 32 บิต หากคุณเห็นทั้งคู่แสดงว่าคุณกำลังใช้คำนำหน้า 64 บิตไวน์ หวังว่านี่จะช่วยได้ !!


นี่ไม่เป็นความจริง. ฉันเพิ่งมีสถานการณ์ที่คำนำหน้าถูกสร้างขึ้นโดยไม่มีไดเรกทอรี x86 แต่มันเป็น 64- บิตตามที่แสดงโดยความจริงที่ว่ามันมี drive_c / windows / syswow64
Duncan X Simpson

4

ฉันต้องการบางสิ่งที่คล้ายกันในสคริปต์ดังนั้นให้สร้างสคริปต์นี้ตามคำตอบของ @ wilf:

#!/bin/bash

## Wine can spam stderr
ERRLOG=/tmp/dllerrlog.log

WINESYSDIR=$( winepath -u c:\\windows\\system32 2> $ERRLOG )    
if [[ ${WINESYSDIR} == *"/system32" ]]; then
  echo "Prefix is 32 bit"
  # do 32 bit stuff here...
elif [[ ${WINESYSDIR} == *"/syswow64"* ]]; then
  echo "Prefix is 64 bit"
  # do 64 bit stuff here...
else
  echo "Unknown wine architecture"
fi

และนี่คือผลลัพธ์บางส่วน:

$ ./winearch.sh 
Prefix is 64 bit

และในคำนำหน้าไวน์ 32 บิตฉันมี:

$ WINEPREFIX=~/.wine32 ./winearch.sh 
Prefix is 32 bit

1

คุณสามารถติดตั้ง winetricks และพิมพ์ใน terminal:

 sudo apt-get install winetricks

จากนั้นเรียกใช้ winetricks จากนั้นคุณสามารถดูได้ตามต้องการ


1
เมื่อฉันเรียกใช้ winetricks ไม่มีตัวเลือกสำหรับ "การตั้งค่า"
หินอ่อนออร์แกนิ

ไม่มีความชอบ
Karl Morrison

1


ขอบคุณ @ wilf สำหรับ'WINEPREFIX / drive_c / windows / syswow64' (ใช้ได้) ..
แต่ฉันได้ทำการแก้ไขรีจิสตรีไวน์เพื่อค้นหารายการใด ๆ ที่เผยให้เห็น
ว่าระบบใช้ winearch อะไร (win32 หรือ win64) และฉันได้พบ มันใน:

cat /root/.wine/system.reg | grep -m 1 '#arch' | cut -d '=' -f2

คำสั่งนี้แสดง: win32 (32 บิต) หรือwin64 (64 บิต)




ตะโกนตัวอย่างหนึ่งของวิธีใช้สิ่งนี้ในการเขียนสคริปต์:

  #!/bin/sh
  HkLm=$(cat /root/.wine/system.reg | grep -m 1 '#arch' | cut -d '=' -f2) > /dev/null 2>&1 # winearch (regedit)
  if [ "$HkLm" = "win64" ]; then
    echo "[x] winearch config: $HkLm (64 bits)"
    echo "[i] Please run:$IPATH/bin/enable_x32bits_wine.sh"
    exit
  fi

บันทึกสุดท้าย: ฉันมีการทดสอบนี้บนลินุกซ์กาลี ..
ถ้าWINEPREFIX = / ราก / .wine32แล้วแมวคำสั่งจะต้องมีไดเรกทอรีที่
จะสามารถที่จะอ่านโฟลเดอร์ภายในสำหรับการตั้งค่า regedit winearch


1
คุณไม่ควรใช้ไวน์เป็นรากดังนั้นอาจใช้~/.wineแทน/root/.wine
โอลิเวียร์จี
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.