- برنامهای برای اجرای برنامهها Windows در کامپیوترهای یونیکس
اجرای Wine Windows حداقل از سال ۲۰۰۴، زمانی که کسی سعی کرد Wine را به Cygwin کامپایل کند، رویای طرفدارانی بوده است که از روحیهی «ما کاری را که باید انجام دهیم انجام میدهیم چون مجبور نیستیم» پیروی میکنند. .
ببخشید: «در مورد برنامههای قدیمی که در آخرین نسخهها به درستی کار نمیکنند، چه باید کرد؟» Windows«اما ما این را درک میکنیم» درست است، واقعی دلیلش این است که "من مدت طولانی برای هنرم زجر کشیدم، حالا نوبت توست."
در پایان سال 2008، یک فکر وسواسی بر من غلبه کرد - و من (فکر می کنم من بودم) صفحه ای ایجاد کردم در ویکی شراب در کوتاه مدت: کاملاً غیرممکن بود، زیرا همه چیز از طریق Cygwin، MinGW یا Windows سرویسهای یونیکس. خیلی موفق تر نیست
Windows 10 یک زیرسیستم معرفی کرد Windows برای Linuxو Ubuntu این برنامه که به راحتی از فروشگاه مایکروسافت دانلود شده است، ایده احمقانه ما عملاً به طور خودکار کار میکند، به جز تنظیم دستی متغیر محیطی DISPLAY.
هنوز هم به طرز شگفتآوری بیفایده است. Wine فقط با برنامههای ۶۴ بیتی کار میکند. Windowsیعنی حتی با وجود تمام برنامههایی که همراه خود سیستم ارائه میشوند، این اتفاق نمیافتد. Windows 10.
(پروژه اصلی پس از آن آغاز شد که کسی نتوانست انکارتا ۹۷ را روی آن اجرا کند.) Windows 10بنابراین، مانند هر راهحل واقعاً تخصصی، در واقع مشکل اصلی کاربر را حل نمیکند.)
اما باز هم تاکید می کنم: در حال حاضر آن را بی اهمیت کار می کند. من یک نابغه دیوانه نیستم که یک پروژه خارق العاده را تحقق بخشد - به نظر می رسد من اولین کسی هستم که این واقعیت را به طور عمومی اعلام کردم.
چگونه این کار احمقانه را انجام دهیم
1. شما ۶۴ بیتی دارید Windows 10، درست است؟ این تنها نسخهای است که WSL دارد.
2. نصب WSL. کنترل پنل -> برنامهها -> برنامهها و ویژگیها -> روشن یا خاموش کردن ویژگیها Windowsکادر «زیرسیستم» را علامت بزنید Windows برای Linux« شروع مجدد Windows.
3. به فروشگاه مایکروسافت بروید، نصب کنید Ubuntu (WSL اساساً برای اجرای آن طراحی شده است). من نصب کردم Ubuntu ۱۸.۰۴ LTS. باز است Ubuntuو ترمینال bash را مشاهده خواهید کرد.
4. موارد زیر را از خط فرمان bash نصب کنید:
sudo dpkg --add-architecture i386
sudo apt update; sudo apt upgrade
sudo apt install wine-stableدر صورت تمایل می توانید نسخه فعلی Wine را نصب کنید (دو کتابخانه جدید را که برای wine-devel >=4.5 مورد نیاز هستند و هنوز در آن گنجانده نشدهاند، فراموش نکنید.) Ubuntu!). اگر این روش جواب داد، به من اطلاع بده.
5. به شما اضافه کنید .bashrc این خط:
export DISPLAY=:0.0احتمالاً می خواهید این را در پنجره bash فعلی نیز اجرا کنید.
6. ، یک نسخهٔ بهخوبی بستهبندیشده از xorg که برای آن کامپایل شده است Windows، فقط آخرین نسخه اجرایی را دریافت کرده و آن را اجرا کنید. X Server را از طریق دکمه Start و XLaunch اجرا کنید. این شما را در تنظیمات پیشفرض راهنمایی میکند - اکثر آنها را به همان صورت باقی بگذارید. من برای احتیاط، کادر "غیرفعال کردن کنترل دسترسی" را علامت زدم. پیکربندی را ذخیره کنید.
6a اگر می خواهید بررسی کنید که سرور X به درستی پیکربندی شده است، نصب کنید sudo apt install x11-apps و اجرا xeyes برای یک سفر سریع به دهه 80 و 90.
7. خود wine کار نمی کند زیرا روی سیستمعامل ۶۴ بیتی ما Windows 10 خطایی نمایش داده میشود /usr/bin/wine: 40: exec: /usr/lib/wine/wine: Exec format error. ظاهرا این است .
در ضمن، بیایید Notepad را در Wine راه اندازی کنیم!
wine64 /usr/lib/x86_64-linux-gnu/wine/fakedlls/notepad.exe

انجام دادن: پشتیبانی 32 بیتی باید صبر کرد من تعجب میکنم که آیا برنامههای قدیمی Win16 کار خواهند کرد یا خیر—آنها باید در Wine اجرا شوند، حتی اگر دیگر در خود Wine کار نکنند. Windows.
برنامه های 32 بیتی از طریق qemu
سپاس ها ، که نحوه راه اندازی برنامه های 32 بیتی را پیشنهاد کرد.
sudo apt install qemu-user-static sudo update-binfmts --install i386 /usr/bin/qemu-i386-static --magic 'x7fELFx01x01x01x03x00x00x00x00x00x00x00x00x03x00x03x00x01x00x00x00x8xXNUMXxXNUMXxXNUMXxXNUMXxXNUMXxXNUMXxXNUMXxXNUMXxXNUMXxXNUMXxXNUMXxXNUMXxXNUMXxXNUMXxXNUMXxXNUMXxXNUMXxXNUMXxXNUMXxXNUMXxXNUMXxXNUMXxXNUMXxXNUMXxXNUMXxXNUMXxXNUMX xffxffxffxffxffxffxfcxffxffxffxffxffxffxffxffxfXNUMXxffxffxffxffxffxffxff 'سرویس sudo binfmt-پشتیبانی شروع
و اکنون می توانیم انجام دهیم:
fun@DESKTOP-7F6DU8P:~$ wine --version wine-3.0 (Ubuntu 3.0-1ubuntu1)
با این حال، Encarta 97 هنوز کار نمی کند:
fun@DESKTOP-7F6DU8P:/mnt/e$ wine SETUP.EXE wine: خطای صفحه کنترل نشده در دسترسی خواندن به 0xffffffff در آدرس 0x11df:0x00002c11 (رشته 0011)، شروع اشکالزدا... 0011:err_art:seh راه اندازی دیباگر ("winedbg --auto 15 108") (2) راهنمای برنامه نویسان Wine را در مورد نحوه راه اندازی winedbg یا دیباگر دیگری بخوانید. برای کسانی که می دانند: file می گوید SETUP.EXE: MS-DOS executable, NE for MS Windows 3.x، بنابراین باید به سراغ برنامه های کمیاب 16 بیتی برویم.
انکارتا ۹۷ به طور بینقص در Wine 4.13 نصب و اجرا میشود. Linux... اما در ساعت ۴.۱۳ Windows 10 هنوز نه:
fun@DESKTOP-7F6DU8P:~$ wine /mnt/e/SETUP.EXE Xlib: پسوند "MIT-SHM" در نمایشگر ":0.0" وجود ندارد. Xlib: پسوند "MIT-SHM" در نمایشگر ":0.0" وجود ندارد. 0009:err:process:__wine_kernel_init رویداد بوت زمان انتظار به پایان رسید 001d:err:process:__wine_kernel_init رویداد بوت زمان انتظار تمام شد wine: خطای صفحه کنترل نشده در دسترسی خواندن به 0xffffffff در آدرس 0x11cf:0x00002، شروع به کار 11x001cf:001x28 :err:seh:start_debugger نمیتوانست اشکالزدا را راهاندازی کند ("winedbg --auto 152 2") (001) راهنمای برنامهنویسان Wine را در مورد نحوه راهاندازی winedbg یا دیباگر دیگری بخوانید 0d:err:ntdll:RtlpWaitForCriticalSvelles7 c: زمان انتظار Win6273Mutex" در رشته 0d به پایان رسید، توسط 16e مسدود شد، تلاش مجدد (001 ثانیه) Xlib: پسوند "MIT-SHM" در نمایشگر ":001" وجود ندارد. بارگیری شراب مارمولک انجام نشد. رندر HTML غیرفعال خواهد شد. 60e:err:seh:raise_exception کد استثنای کنترل نشده c0.0 flags 001 addr 0000005x0b0a7abc خطای مشتری شراب:4e: نوشتن: توصیف کننده فایل بد البته او می دهد متفاوت است پیام های خطا در اجراهای متعدد...
منبع: www.habr.com
