mozhgan
08-05-2011, 07:03 AM
اجرای برنامههای ویندوز بر روی لینوکس بوسیلهWine
ابزاری مفید اما نه آن چیزی که شما انتظار دارید.
مقدمه:
برخی ازسازمانها در حال تجربه نسخههایی از لینوکسهای رومیزی هستند؛ اما بیشتر کاربران هنوز برای انجام کارهایشان به برنامههای کاربردی ویندوز نیاز دارند که برنامه مشابه ای در لینوکس ندارند. یکی از گزینههای موجود برای این برنامههای کاربردی استفاده از ابزارWine است. در اینجا به بیان مزایای استفاده از این ابزار میپردازیم:
واژه Wine به اختصار مخفف 5 کلمه انگلیسی است که مفهوم نهایی آن را میتوان اینچنین تعریف کرد: "Wine Is Not an Emulator." (واین یک تقلید کننده نیست) . در واقع این عبارت یک کلمه ترکیبی زیرکانه برای برنامه Wine است که به شما کمک میکند تا برنامههای ویندوز را در محیط لینوکس اجرا کنید. Wine در حقیقت یکی از ابزارهای API ویندوز است که به برنامه مورد نظر شما اجازه میدهد تا با استفاده از API در محیط سیستم عامل دیگری اجرا گردد البته با این نکته که اساسا از آن برنامه پشتیبانی نمیکند. شایان ذکر است که Wine از سیستمهای مبتنی بر x86 بصورت کامل پیروی نمیکند. اما زمینه را برای اجرای نرم افزارهای API جهت بکار گیری برنامههای ویندوز فراهم میسازد. همچنین به علت خاصیت غیر تقلیدیWine برنامهها با سرعت مناسبی اجرا میشود. در حالی که فرایند تقلیدسازی معمولا باعث کندی اجرای برنامهها میشود.حال با نصب Wine در محیط سیستم عامل لینوکس میخواهیم چگونگی اجرای برنامههای کاربردی معمول در ویندوز را بیشتر بررسی کنیم:
بارگذاری و نصب برنامه:
در این مثال برای بیان مقصود خود از سیستم Red Hat Linux 9 استفاده میکنیم. آخرین نسخه Wine را از سایت www.winehq.com دریافت کرده و بسته RPM آن را در محیط لینوکس اجرا میکنم. به نسخه ای از Wine نیاز داریم که glibc 2.3 را پشتیبانی نماید. در هنگام نوشتن این مقاله نسخه موجود در سایت Wine تنها قابلیت پشتیبانی از glibc 2.2 را دارا بود. به هرحال نسخه مورد نیاز در سایت Wine با لینک به یک سایت دیگر میتوانید بیابید. برای نصب نسخه RPM که از اینترنت دریافت کردیم و با توجه به اینکه پردازشگر کامپیوتر مورد اشاره Athlon است دستور زیر را در خط فرمان تایپ کنید
$ rpm –i wine-2003011-1rh9winehq.athlon.rpm
اگر شما از نسخه دیگری از Red Hat استفاده میکنید و یا پردازشگر شما از انواع دیگری است؛ باید فایل مناسب را دریافت نمایید. در سیستم ذکر شده؛ مرحله نصب بصورت کامل صورت گرفت.
چه کارهایی صورت گرفت؟
پس از مرحله نصب RPM ، ابزار Wine پیکره بندی و در مسیر /usr/share win-c آماده اجرای برنامههای Windows میشود. در حقیقت Wine چندین برنامه کاربردی مشترک مانند Notepad و بازی (مهم!) Minesweeper را نیز نصب میکند.
چنانچه شما تصمیم به کامپایل Wine به جای نصب RPM داشته باشید ، ممکن است آدرس این مسیر متفاوت باشد. شکل شماره ۱ اجزای آشنای این مسیر را نشان میدهد. همانگونه که مشاهده میشود؛ زیرشاخههای مشترک ویندوز ساخته شده است و Wine از این زیرشاخهها برای نصب برنامهها ی مورد نظر استفاده میکند.
چنانچه اشاره شد؛ حال برنامه Notepad نصب شده است. برای اجرای آن در قسمتRun Program… ، نام برنامه Notepad را تایپ کنید. از آنجایی که Notepad توسط Wine آماده شده؛ میتوانید آن را به صورت مستقیم فراخوانی کنید. البته این موضوع در مورد سایر برنامهها صادق نیست. شکل شماره ۳ برنامه Notepad بر روی لینوکس را نمایش میدهد. به هر حال کندی سرعت ماوس در زمان اجرای برنامه امری بدیهی است و زمانی که شما فایلی را برای اولین بار باز میکنید اشاره گر به کندی حرکت میکند.
و اما اجرای سایر برنامههای کاربردی:
هر چند Notepad برای حصول انجام کارهای متنی مناسب است اما احتمالا شما تصمیم به نصب سایر برنامههای مفیدتر نیز در محیط لینوکس خواهید داشت. مجموعه نسبتا زیادی از برنامهها (بالغ بر 1604 برنامه در هنگام نوشتن این مقاله) در بانک اطلاعاتی Wine لیست شده بود. آما این بدین معنی نیست که همه این برنامهها به خوبی اجرا شوند بلکه مستلزم صرف زمان و سعی زیادی توسط کاربران میباشد.
نصب برنامهها با استفاده از ابزار Wine مسلما زمان و تلاش فراوانی را میطلبد. بعضی اوقات تنها قراردادن CD در درایو و اجرای برنامه نصب کافی نیست. به هر حال باید بسیار تلاش کنید و در صورتی که به اندازه کافی خوش شانس باشید میتوانید شاهد اجرای برنامههای مورد نظرتان در محیط لینوکس باشد. این همان هزینه ای است که برای نصب برنامه در محیط سیستم عاملی که اساسا برای آن برنامه طراحی نشده است خواهید پرداخت. به عنوان مثال، در اینجا تصمیم به نصب یک نسخه غیر نهایی از برنامه JASC's Paint Shop Pro 8 گرفته میشود.
Paint Shop Pro 8
ابتدا، از سایت JASC این نسخه را دریافت میکنیم. سپس با استفاده از دستور زیر آن را اجرا کنید:
$ /usr/bin/wine psp801ev.exe
در این دستور psp801ev.exe نام فایل مورد نظر میباشد. در شکل ۳ پنجره نصب ویزارد را میبینید.
در هنگام نصبPaint Shop Pro 8 در پنجره ویزارد، مسیر "C: drive" نمایش دهنده مکانی است که Wine قرار دارد. متاسفانه این زمانی است که بدون تشریفات کاربر را به خط فرمان Wine بر میگرداند. در این شرایط، با تایپ دستور quit از پنجره دستورات خطی خارج شده و نصب برنامه متوقف میشود. در این هنگام که با تعداد بسیار زیادی از پیامهای خطا یا "errors " که در پنجره دستورات وجود دارد بر خورد میکنیم . این پیامها موقع نصب Wine/PSP8 ایجاد شده اند.
فکر میکنیم شاید عدم نصب کامل برنامه Paint Shop Pro 8 به علت جدید بودن آن نرم افزار یا به خاطر قابلیتهای جدید آن بوده که Wine نمیتوانسته است از آن قابلیتها پشتیبانی کند. بنابراین نسخه 7 آنرا را از روی CD نصب کنید اما مجددا مانند نمونه قبل بی نتیجه خواهد بود.
در قسمت پشتیبانی سایت Wine به راهنمای نصب PSP7 مراجعه کردم. متاسفانه در آنجا فقط نسخه معینی از PSP7 وجود داشت. مشکل اصلی اجرای برنامه PSP7 نحوه اجرای آن تحت Wine است که اساسا مبتنی بر نصب بر روی سیستم ویندوز است. مشکل بعدی کپی کردن کامل فایلهای در حال نصب به registry key بر روی سیستم لینوکس میباشد.
زمانی که سعی دارید این مشکل را حل کنید و هر بار با مشکل به هم ریزی Regedit رو به رو میشوید؛ مجددا registry keys را که PSP7 لازم داشت فراهم کنید.
نرم افزار که بتواند کار را به خوبی انجام دهد:
در سایت Wine شما لیستی از نرم افزارهای کوچک و غیر اساسی را مشاهده میکنید. این برنامهها شامل PuTTY WS-FTP LE، mIRC، Acrobat Reader 5.05 ، WinZip، WinAmp، و SnagIt. گر چه با همه احترامیکه به این کاری که انجام میشود قائل هستم اما به اهمیت که این برنامههای ویندوز در لینوکس مطمئن نیستم مخصوصا زمانی که برنامههای مشابه به این برنامهها در لینوکس است و همه این کارها را به خوبی در لینوکس انجام میدهند. با این وجود من شخصا ترجیح میدهم که از Microsoft Office به جای OpenOffice استفاده کنم مخصوصا وقتی که توابع و کارهای متفاوتی بین این دو نرم افزار باعث سردرگمیکاربران میشود. همچنین من ترجیح میدهم از برنامههای موجود در خود سیستم عامل استفاده کنم حال آن که بیشتر کاربران در صدد هستند تا از Wine برای اجرای برنامههای کابردی ویندوز استفاده کنند مخصوصا وقتی که مشابه آن برنامهها در لینوکس وجود ندارد.
نتیجه:
سوال این است که میتوان Wine را به عنوان یک محیط تولید مناسب برنامههای کابردی تلقی کرد؟ متاسفانه پاسخ منفی است. با وجود همه احترامیکه من به تلاش برنامه نویسان این پروژه قائل هستم اما این محیطی است پر دردسر برای کاربران که سرانجام به خروجیهای ناقص به جای اجرای برنامههای کاربردی ختم میشود. یک خانه کاغذی که به تنهایی باعث تولید برنامههایی اکثرا نا کارآمد که معظلاتی برای تیمهای متخصص پشتیبانی کامپیوتر و همچنین باعث مشکلاتی برای کاربران میشود. مطمئنا شما نیز هم عقیده هستید که اجرای یک برنامه مستلزم یکسری فرآیند منطقی است اما رفع مشکلات یک نرم افزار بسیار پیچیده تر از اجرای آن و مستلزم عیب یابی همه عوامل مرتبط با آن نرم افزار میباشد. در ضمن برای اجرای یک برنامه کاربردی شما بایدDLLهای مربوط به آن را نیز بر روی دایرکتوری مناسب آن برنامه در محیط Wine کپی نمایید.
من شخصا کار با برنامه CrossOver Office 2 محصول CodeWeaversرا ترجیح میدهم ( www.codeweavers.com/products/office).
با این برنامه شما تعدادی از برنامههای مفید ویندوز مانند Microsoft Office 2000 را به خوبی میتوانید اجرا کنید. همچنین برنامه Paint Shop Pro 8 نیز به خوبی بوسیله CrossOver Office 2 قابل اجراست. همچنین از برنامههای غیر سودمند مانند mIRC و WS-FTP LE که Wine به خوبی پشیبانی میکنند اما برای کارهای تجاری و تخصصی ضروری نیستند نیز خبری نیست.
شاید Wine به عنوان یک نقطه شروع برای کاربرانی که در حال تجربه کردن اجرای برنامههای ویندوز بر روی لینوکس هستند مناسب باشد اما برای شرکتها و موسسات تجاری که به طور جدی تصمیم به اجرای برنامههای ویندوز بر روی لینوکس دارند بهترین و مطمئن ترین انتخاب نصب CrossOver Office بر روی لینوکس آن شرکتها و موسسات است.
ابزاری مفید اما نه آن چیزی که شما انتظار دارید.
مقدمه:
برخی ازسازمانها در حال تجربه نسخههایی از لینوکسهای رومیزی هستند؛ اما بیشتر کاربران هنوز برای انجام کارهایشان به برنامههای کاربردی ویندوز نیاز دارند که برنامه مشابه ای در لینوکس ندارند. یکی از گزینههای موجود برای این برنامههای کاربردی استفاده از ابزارWine است. در اینجا به بیان مزایای استفاده از این ابزار میپردازیم:
واژه Wine به اختصار مخفف 5 کلمه انگلیسی است که مفهوم نهایی آن را میتوان اینچنین تعریف کرد: "Wine Is Not an Emulator." (واین یک تقلید کننده نیست) . در واقع این عبارت یک کلمه ترکیبی زیرکانه برای برنامه Wine است که به شما کمک میکند تا برنامههای ویندوز را در محیط لینوکس اجرا کنید. Wine در حقیقت یکی از ابزارهای API ویندوز است که به برنامه مورد نظر شما اجازه میدهد تا با استفاده از API در محیط سیستم عامل دیگری اجرا گردد البته با این نکته که اساسا از آن برنامه پشتیبانی نمیکند. شایان ذکر است که Wine از سیستمهای مبتنی بر x86 بصورت کامل پیروی نمیکند. اما زمینه را برای اجرای نرم افزارهای API جهت بکار گیری برنامههای ویندوز فراهم میسازد. همچنین به علت خاصیت غیر تقلیدیWine برنامهها با سرعت مناسبی اجرا میشود. در حالی که فرایند تقلیدسازی معمولا باعث کندی اجرای برنامهها میشود.حال با نصب Wine در محیط سیستم عامل لینوکس میخواهیم چگونگی اجرای برنامههای کاربردی معمول در ویندوز را بیشتر بررسی کنیم:
بارگذاری و نصب برنامه:
در این مثال برای بیان مقصود خود از سیستم Red Hat Linux 9 استفاده میکنیم. آخرین نسخه Wine را از سایت www.winehq.com دریافت کرده و بسته RPM آن را در محیط لینوکس اجرا میکنم. به نسخه ای از Wine نیاز داریم که glibc 2.3 را پشتیبانی نماید. در هنگام نوشتن این مقاله نسخه موجود در سایت Wine تنها قابلیت پشتیبانی از glibc 2.2 را دارا بود. به هرحال نسخه مورد نیاز در سایت Wine با لینک به یک سایت دیگر میتوانید بیابید. برای نصب نسخه RPM که از اینترنت دریافت کردیم و با توجه به اینکه پردازشگر کامپیوتر مورد اشاره Athlon است دستور زیر را در خط فرمان تایپ کنید
$ rpm –i wine-2003011-1rh9winehq.athlon.rpm
اگر شما از نسخه دیگری از Red Hat استفاده میکنید و یا پردازشگر شما از انواع دیگری است؛ باید فایل مناسب را دریافت نمایید. در سیستم ذکر شده؛ مرحله نصب بصورت کامل صورت گرفت.
چه کارهایی صورت گرفت؟
پس از مرحله نصب RPM ، ابزار Wine پیکره بندی و در مسیر /usr/share win-c آماده اجرای برنامههای Windows میشود. در حقیقت Wine چندین برنامه کاربردی مشترک مانند Notepad و بازی (مهم!) Minesweeper را نیز نصب میکند.
چنانچه شما تصمیم به کامپایل Wine به جای نصب RPM داشته باشید ، ممکن است آدرس این مسیر متفاوت باشد. شکل شماره ۱ اجزای آشنای این مسیر را نشان میدهد. همانگونه که مشاهده میشود؛ زیرشاخههای مشترک ویندوز ساخته شده است و Wine از این زیرشاخهها برای نصب برنامهها ی مورد نظر استفاده میکند.
چنانچه اشاره شد؛ حال برنامه Notepad نصب شده است. برای اجرای آن در قسمتRun Program… ، نام برنامه Notepad را تایپ کنید. از آنجایی که Notepad توسط Wine آماده شده؛ میتوانید آن را به صورت مستقیم فراخوانی کنید. البته این موضوع در مورد سایر برنامهها صادق نیست. شکل شماره ۳ برنامه Notepad بر روی لینوکس را نمایش میدهد. به هر حال کندی سرعت ماوس در زمان اجرای برنامه امری بدیهی است و زمانی که شما فایلی را برای اولین بار باز میکنید اشاره گر به کندی حرکت میکند.
و اما اجرای سایر برنامههای کاربردی:
هر چند Notepad برای حصول انجام کارهای متنی مناسب است اما احتمالا شما تصمیم به نصب سایر برنامههای مفیدتر نیز در محیط لینوکس خواهید داشت. مجموعه نسبتا زیادی از برنامهها (بالغ بر 1604 برنامه در هنگام نوشتن این مقاله) در بانک اطلاعاتی Wine لیست شده بود. آما این بدین معنی نیست که همه این برنامهها به خوبی اجرا شوند بلکه مستلزم صرف زمان و سعی زیادی توسط کاربران میباشد.
نصب برنامهها با استفاده از ابزار Wine مسلما زمان و تلاش فراوانی را میطلبد. بعضی اوقات تنها قراردادن CD در درایو و اجرای برنامه نصب کافی نیست. به هر حال باید بسیار تلاش کنید و در صورتی که به اندازه کافی خوش شانس باشید میتوانید شاهد اجرای برنامههای مورد نظرتان در محیط لینوکس باشد. این همان هزینه ای است که برای نصب برنامه در محیط سیستم عاملی که اساسا برای آن برنامه طراحی نشده است خواهید پرداخت. به عنوان مثال، در اینجا تصمیم به نصب یک نسخه غیر نهایی از برنامه JASC's Paint Shop Pro 8 گرفته میشود.
Paint Shop Pro 8
ابتدا، از سایت JASC این نسخه را دریافت میکنیم. سپس با استفاده از دستور زیر آن را اجرا کنید:
$ /usr/bin/wine psp801ev.exe
در این دستور psp801ev.exe نام فایل مورد نظر میباشد. در شکل ۳ پنجره نصب ویزارد را میبینید.
در هنگام نصبPaint Shop Pro 8 در پنجره ویزارد، مسیر "C: drive" نمایش دهنده مکانی است که Wine قرار دارد. متاسفانه این زمانی است که بدون تشریفات کاربر را به خط فرمان Wine بر میگرداند. در این شرایط، با تایپ دستور quit از پنجره دستورات خطی خارج شده و نصب برنامه متوقف میشود. در این هنگام که با تعداد بسیار زیادی از پیامهای خطا یا "errors " که در پنجره دستورات وجود دارد بر خورد میکنیم . این پیامها موقع نصب Wine/PSP8 ایجاد شده اند.
فکر میکنیم شاید عدم نصب کامل برنامه Paint Shop Pro 8 به علت جدید بودن آن نرم افزار یا به خاطر قابلیتهای جدید آن بوده که Wine نمیتوانسته است از آن قابلیتها پشتیبانی کند. بنابراین نسخه 7 آنرا را از روی CD نصب کنید اما مجددا مانند نمونه قبل بی نتیجه خواهد بود.
در قسمت پشتیبانی سایت Wine به راهنمای نصب PSP7 مراجعه کردم. متاسفانه در آنجا فقط نسخه معینی از PSP7 وجود داشت. مشکل اصلی اجرای برنامه PSP7 نحوه اجرای آن تحت Wine است که اساسا مبتنی بر نصب بر روی سیستم ویندوز است. مشکل بعدی کپی کردن کامل فایلهای در حال نصب به registry key بر روی سیستم لینوکس میباشد.
زمانی که سعی دارید این مشکل را حل کنید و هر بار با مشکل به هم ریزی Regedit رو به رو میشوید؛ مجددا registry keys را که PSP7 لازم داشت فراهم کنید.
نرم افزار که بتواند کار را به خوبی انجام دهد:
در سایت Wine شما لیستی از نرم افزارهای کوچک و غیر اساسی را مشاهده میکنید. این برنامهها شامل PuTTY WS-FTP LE، mIRC، Acrobat Reader 5.05 ، WinZip، WinAmp، و SnagIt. گر چه با همه احترامیکه به این کاری که انجام میشود قائل هستم اما به اهمیت که این برنامههای ویندوز در لینوکس مطمئن نیستم مخصوصا زمانی که برنامههای مشابه به این برنامهها در لینوکس است و همه این کارها را به خوبی در لینوکس انجام میدهند. با این وجود من شخصا ترجیح میدهم که از Microsoft Office به جای OpenOffice استفاده کنم مخصوصا وقتی که توابع و کارهای متفاوتی بین این دو نرم افزار باعث سردرگمیکاربران میشود. همچنین من ترجیح میدهم از برنامههای موجود در خود سیستم عامل استفاده کنم حال آن که بیشتر کاربران در صدد هستند تا از Wine برای اجرای برنامههای کابردی ویندوز استفاده کنند مخصوصا وقتی که مشابه آن برنامهها در لینوکس وجود ندارد.
نتیجه:
سوال این است که میتوان Wine را به عنوان یک محیط تولید مناسب برنامههای کابردی تلقی کرد؟ متاسفانه پاسخ منفی است. با وجود همه احترامیکه من به تلاش برنامه نویسان این پروژه قائل هستم اما این محیطی است پر دردسر برای کاربران که سرانجام به خروجیهای ناقص به جای اجرای برنامههای کاربردی ختم میشود. یک خانه کاغذی که به تنهایی باعث تولید برنامههایی اکثرا نا کارآمد که معظلاتی برای تیمهای متخصص پشتیبانی کامپیوتر و همچنین باعث مشکلاتی برای کاربران میشود. مطمئنا شما نیز هم عقیده هستید که اجرای یک برنامه مستلزم یکسری فرآیند منطقی است اما رفع مشکلات یک نرم افزار بسیار پیچیده تر از اجرای آن و مستلزم عیب یابی همه عوامل مرتبط با آن نرم افزار میباشد. در ضمن برای اجرای یک برنامه کاربردی شما بایدDLLهای مربوط به آن را نیز بر روی دایرکتوری مناسب آن برنامه در محیط Wine کپی نمایید.
من شخصا کار با برنامه CrossOver Office 2 محصول CodeWeaversرا ترجیح میدهم ( www.codeweavers.com/products/office).
با این برنامه شما تعدادی از برنامههای مفید ویندوز مانند Microsoft Office 2000 را به خوبی میتوانید اجرا کنید. همچنین برنامه Paint Shop Pro 8 نیز به خوبی بوسیله CrossOver Office 2 قابل اجراست. همچنین از برنامههای غیر سودمند مانند mIRC و WS-FTP LE که Wine به خوبی پشیبانی میکنند اما برای کارهای تجاری و تخصصی ضروری نیستند نیز خبری نیست.
شاید Wine به عنوان یک نقطه شروع برای کاربرانی که در حال تجربه کردن اجرای برنامههای ویندوز بر روی لینوکس هستند مناسب باشد اما برای شرکتها و موسسات تجاری که به طور جدی تصمیم به اجرای برنامههای ویندوز بر روی لینوکس دارند بهترین و مطمئن ترین انتخاب نصب CrossOver Office بر روی لینوکس آن شرکتها و موسسات است.