آخرین مطالب

اجرای نرم‌افزارهای مؤسسه نور روی گنو/لینوکس توسط wine

بسم الله الرحمن الرحیم.

آنچه در پایین خواهید خواند، راه حلّی من درآوردی و غیر استاندارد برای حلّ مشکل است، راه حل صحیح این است که کد را اصلاحی استاندارد کرده و برای واین بفرستیم تا در نسخه‌های آینده اعمال شود.

اگر کسی فرصت دارد، انجام دهد.

متن یادداشتی که برای حلّ این مشکل کرده‌ام:

 

بسم الله الرحمن الرحیم.
هنگام اجرا یک ارور اوّلیه می‌دهد، برای رفع آن،
به گمانم نصب دایرکت ایکس نیاز باشد:
winetricks d3dx9
شاید هم یکی از این پکیج‌ها:
winetricks msxml3 usp10 riched20
و شاید هم نصب
directx9
مشکل را حل کند.(اگر حل نشد این را انجام دهید)

بعد از این مشکل، مشکل دیگری پیش می‌آید:

باگ منسوب به من:
https://bugs.winehq.org/show_bug.cgi?id=40630

تاپیک‌های من:
https://forum.winehq.org/viewtopic.php?f=8&t=26796
https://forum.winehq.org/viewtopic.php?f=2&t=28568

ظاهرا مشکل در هنگام اجرای تابع
SetupDiGetDeviceRegistryProperty
بوجود می‌آید.
این تابع در فایل
setupapi.dll
وجود دارد.
چه کنیم؟ دو راه حل به ذهنم رسید:
اول اینکه فایل
setupapi.dll
ویندوز ایکس پی را جایگزین کنیم، فکر کنم انجام دادم و نشد.

راه دوّم اینکه ما این قسمت واین را اصلاح و دوباره کامپایل کنیم.
سورس را اگر دریافت کنید، در این آدرس است:
./dlls/setupapi/devinst.c
همانجا دو تابع
SetupDiGetDeviceRegistryPropertyA
و
SetupDiGetDeviceRegistryPropertyW

را اصلاح کنید، محتوایش را کامل خالی کنید و بگذارید فقط مقدار
false
را برگرداند.

من احتیاطا با تابع
SetupDiEnumDeviceInfo
نیز این کار را کردم.

فقط همان قسمت را کامپایل کنید،
(البته این هم سؤال مهمّی است که ما چگونه تنها همان یک قسمت را کامپایل کنیم؟ من روشی برای این کار نیافتم.فعلا مجبورم کل واین را دوباره کامپایل کنم، سپس آن فایل کامپایل شده را، جایگزین فایل‌های نصب شده‌ی واین بکنم (من واین را با پکیج‌منیجر رسمی آرچ‌لینوکس نصب کرده‌ام).
در اینجا این سؤال مطرح شده که چگونه تنها یک قسمت را کامپایل کنیم، شخصی پاسخ داده که فکر می‌کند راهی نباشد.
https://forum.winehq.org/viewtopic.php?f=2&t=26400
البته، نیازی نیست شما تا انتهای کامپایل واین صبر بکنید، همین که آن بخش کامپایل شد، کار تمام است، کامپایل را متوقّف کنید و فایل را کپی کنید.
جوابی پیدا کردم:
شما هنگامی که در پوشه سورس،
./configure
و سپس
make
را اجرا می‌کنید، بعد از چند دستور اوّلیه که اجرا می‌کند، شما می‌توانید وارد پوشه هرکدام از دی ال ال ها شوید و در آنجا دستور
make
را اجرا کنید، آن دی ال ال بخصوص کامپایل خواهد شد.
)

سپس فایل کامپایل شده را جایگزین کنید:
/usr/lib/wine/setupapi.dll.so
(این فایل دوّم را شک دارم نیاز باشد کپی کنیم یا نه)
/usr/lib/wine/libsetupapi.def
و برنامه انشالله به خوبی اجرا خواهد شد.
برای عملکرد آن ، نیازی به اضافه کردن
LANG=fa_IR.utf-8 wine …
قبل از دستور نیست، اگرچه احتیاطا آن را اضافه کردم.

یک نظر

  1. برای اجرای نرم افزار های نور راه راحت تری هم هست. فایل های نصب شده ی نرم افزار را کپی کنید و کد های ریجستری که نرم افزار روی ویندوز اجرا کرده را به یک فایل جدا انتقال بدین و به درون ریجستری واین ثبت کنین. نرم افزار ها بدون نیازبه نصب اجرا می شن.

جوابی بنویسید

ایمیل شما نشر نخواهد شدخانه های ضروری نشانه گذاری شده است. *

*

کد امنیتی *