Làm cách nào để kiểm tra xem tiền tố Wine của tôi là 32 bit hay 64 bit?


15

Tôi đã thấy hàng tấn chủ đề giải thích cách tạo tiền tố 32 bit, nhưng tôi muốn kiểm tra xem tiền tố tôi đang sử dụng là 32 bit hay 64 bit. Lý do tôi hỏi là tôi đang sử dụng PlayOnLinux và tôi đã tạo một ổ đĩa ảo 32 bit (ví dụ X). Bây giờ khi tôi mở winetricks trong thư mục ~ / .PlayOnLinux / Wineprefix, Wineprefix cho tôi thông báo

Bạn đang sử dụng WINEPREFIX 64 bit. Nếu bạn gặp phải sự cố, vui lòng kiểm tra lại WINEPREFIX 32 bit sạch trước khi báo cáo lỗi.

Nhưng, khi tôi mở Wineprefix trong ~ / .PlayOnLinux / Wineprefix / X, thông báo không xuất hiện.

Làm cách nào để kiểm tra xem tiền tố là 32 so với 64 bit?

Câu trả lời:


5

Tất cả những gì bạn phải làm là, Duyệt các ổ đĩa ảo của PlayonLinux. Chuyển đến thư mục WINEPREFIX / drive_c / và tìm thư mục Tệp chương trình.

Nếu bạn chỉ thấy Tệp chương trình và không có Chương trình tệp (x86) thì bạn đang sử dụng Tiền tố rượu 32 bit. Nếu bạn thấy cả hai thì bạn đang sử dụng Tiền tố rượu 64 bit. Hi vọng điêu nay co ich !!


Đây không phải là sự thật. Tôi vừa gặp tình huống tiền tố được tạo mà không có thư mục x86 nhưng nó là 64 bit như được hiển thị bởi thực tế là nó chứa drive_c / windows / syswow64.
Duncan X Simpson

4

Nếu bạn đang sử dụng PlayOnLinux, bạn có thể kiểm tra phiên bản nào bằng GUI - mở PlayOnLinux, nhấp vào 'Cấu hình' trên chương trình có liên quan và nhìn vào khung bên trái:

Ngoài ra, bạn có thể làm những gì winetricks làm (trong phiên bản 20140817, dòng 3600) , đó là kiểm tra Wineprefix cho sự hiện diện của thư mục WINEPREFIX/drive_c/windows/syswow64, nên được tìm thấy trong các cửa sổ 64 bit / Wineprefix, nhưng không phải là phiên bản 32 bit. Điều này sẽ hoạt động cho các loại rượu vang thông thường và những người thuộc PlayOnLinux.


4

Tôi cần một cái gì đó tương tự trong một kịch bản để tạo ra kịch bản này dựa trên câu trả lời của @ 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

Và đây là một số đầu ra:

$ ./winearch.sh 
Prefix is 64 bit

Và trên tiền tố rượu 32 bit tôi có:

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

1

Bạn có thể cài đặt winetricks và nhập cái này vào terminal:

 sudo apt-get install winetricks

và sau đó chạy winetricks, và sau đó bạn có thể thấy nó trong sở thích.


1
Khi tôi chạy winetricks, không có tùy chọn nào cho "ưu tiên".
Đá cẩm thạch hữu cơ

Không có ưu tiên.
Karl Morrison

1


Cảm ơn @ wilf dành cho 'WINEPREFIX / drive_c / windows / syswow64' (nó hoạt động) ..
nhưng tôi đã chỉnh sửa sổ đăng ký rượu để tìm bất kỳ mục nào tiết lộ
hệ thống winearch đang sử dụng (win32 hoặc win64) và tôi đã tìm thấy nó trong:

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

Lệnh này hiển thị: win32 (32 bit) hoặc win64 (64 bit)




Dưới đây là một ví dụ về cách sử dụng điều này trong kịch bản:

  #!/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

Lưu ý cuối cùng: tôi đã thử nghiệm điều này trên kali linux ..
nếu WINEPREFIX = / root / .wine32 thì lệnh cat phải chứa thư mục đó
để có thể đọc bên trong thư mục cho các cài đặt winearch regedit.


1
Bạn không nên chạy rượu với quyền root nên có thể sử dụng ~/.winethay vì/root/.wine
Olivier G
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.