اگر یکی از هواداران توزیع فدورا هستید، احتمالا با تغییرات اخیر در ویرایش ۲۲ این توزیع آشنا هستید. در ویرایش جدید این توزیع که مدتی است منتشر شده است مدیر بستههای نرمافزاری یام «YUM» که برای بهروزرسانی و نصب و حذف بستههای نرمافزاری به کار میرفت دیگر وجود ندارد و جای خود را به ابزار جدید با نام دیاناف «DNF» داده است. البته این تغییرات از ویرایش ۱۸ این توزیع شروع شده بود که ابزار به صورت اختیاری قابل نصب و آزمایش بود با این حال هنوز هم این ابزار آماده کاربرد تجاری و استفاده در توزیعی مانند ردهت تجاری نیست. در این مطلب قصد داریم به بررسی ابزار جدید برای بهروزرسانی و مدیریت بستههای نرمافزاری در این توزیع بپردازیم و ببینیم به چه علت این تغییر رخ داده است و چه تغییراتی در این مورد اتفاق افتاده و چه تغییر در نحوه کار با آن تغییر یافته است؟
تعریفی از یام توسط سایت ویکیپدیا: (یام یا Yellow dog Updater Modified و یا Yellow dog Update Manager که به اختصار به آن YUM گفته میشود، یک نرمافزار کاربردی متن باز میباشد که برای مدیریت بستههای نرمافزاری سازگار با RPM در سیستمعامل لینوکس استفاده میشود.)
قبل از اینکه بخواهید خواندن این مقاله را آغاز کنید، باید عرض کنم که اگر از آن دسته افرادی هستید که هیچوقت سرو کارشان به خط فرمان نمیافتد و حتی یکبار هم ترمینال را لمس نکردهاند، (که در توزیعی مانند فدورا کمتر از اوبونتو، چنین افرادی وجود دارند.) تغییر خاصی را احساس نخواهند کرد. زیرا تغییرات موجود در این ابزار و تغییر نام ابزار نصب و حذف و مدیریت بستههای نرمافزاری فقط برای آن دسته از کاربران ملموستر است که معمولا برای نصب نرمافزار خود از نرمافزارهای گرافیکی واسطی چون گنوم سافتویر استفاده نمیکنند.
اما نکته دیگری نیز قابل ذکر است که باید به آن اشاره کرد، برخی کاربران دستورات خود را از طریق راهنمای نصب نرمافزارها و از اینترنت رونویسی کرده و سپس در خطفرمان درج میکنند؛ اگر از آن دسته کاربران هستید نباید در این کدها تغییراتی را ایجاد نمایید. فقط یک اخطار بعد از دستورات نمایش داده میشود که یام دیگر حذف شده و به دستور دیاناف تغییر یافته است. با این حال مواردی نیز در این ابزار تغییر یافته و برخی کلمات کلیدی ممکن است تغییر یافته باشند. فهرست کامل این تغییرات را میتوانید از این پیوند در پایگاه اینترنتی فدورا مشاهده کنید. به عنوان نمونه اگر دستور زیر را اجرا نمایید؛ خروجی مشابه با تصویر زیر مواجه خواهید شد که به شما میگوید بهتر است از این دستور استفاده نکنید و از دستور جدید دیاناف استفاده کنید، با این حال با تغییر دستور به مورد دلخواه عملیات مورد نظر شما را نیز انجام خواهد داد.
sudo yum install java-1.7.0-openjdk
به دلیل آنکه توسعهدهندگان توزیع، اسکریپتی را برای اجرای ابزار جدید به جای ابزار قدیمی و با نام ابزار قدیمی نوشته اند که دستورات قدیمی را به دستور جدید تغییر داده و سپس با نمایش پیغامی، عملیات مورد نظر را توسط ابزار دیاناف به پایان میرساند. به این خاطر کاربران هنوز هم میتوانند از یام استفاده کنند.
دیاناف از قابلیتهای جدید برخوردار گشته است که برخی از آنان هنوز آماده نشدهاند. تغییراتی که در این نسخه رخداده برای کاربران تجاری و کاربردهای جدیتر هنوز آزمایشی هستند. اما مهمترین سوالی که ممکن است برای شما و اکثر افراد نیز پیش آمدهباشد؛ این است که چرا این تغییرات اتفاق افتاده است؟
چرا این تغییرات رخ دادهاست؟
تغییراتی که در این مدیر بستهنرمافزاری جدید گنجانده شده است و دلایلی که باعث شدهاست که توسعهدهندگان فدورا دست به ایجاد این مدیر بسته نرمافزارها بزنند؛ شامل موارد زیر است.
- ابزار و API که بدون نوشتن مستندات کافی ایجاد شده باشد و از کد واضح و تمیزی برخوردار نباشد؛ توسعهای کند و طاقت فرسا خواهد داشت. زیرا هر فردی که بخواهد ایرادی را از آن رفع و یا مواردی را به آن اضافه کند؛ باید اطلاع داشته باشد که دقیقا کد نوشته شده در بخش خاص چه کار میکند؛ سپس اقدام به افزودن موارد جدید کند. این یکی از آن دلایلی بود که توسعه یام کاملا کند بود؛ بنابراین به اینخاطر تصمیم گرفته شد که این مدیر بستههای نرمافزاری فدورا با نام جدید و از پایه طراحی شود. برای حل مشکل مذکور، این بار تلاش شدهاست که کد آن به خوبی از مستندات مناسب بهرهمند شود.
- فدورا قصد داشت تا ابزار قدیمی یام را به پایتون سه بهروز کند که در یام نمیتوانستند کاملا چنین کاری را انجام دهند. درحالی که ابزار جدید دیاناف قادر است در دو ویرایش ۲ و ۳ از پایتون اجرا شود.
- یکی از مواردی که همواره خودم و دیگران کاربران را از استفاده از توزیع محبوب فدورا بر حذر میداشت، الگوریتمهای بد و کندی بود که برای وابستگیها و دیگر مسائل در یام واقعا کند بودند؛ این الگوریتمهای غیر بهینه در برابر ابزارهای دیگر در توزیعهایی مانند آرچلینوکس چون پکمن «Pacman» کاملا کند بودند که این امر کاملا محسوس بود. در ابزار جدید دیاناف از روش SAT برای رفع مشکلات وابستگیها استفاده میکند که پیش از این در توزیعهای سوزه و اپنسوزه مورد استفاده قرار گرفته بود.
به طور خلاصه یام دیگر پیر شده بود و برای توزیع مدرن و جوانی چون فدورا وصلهای ناجور به شمار میآمد که با نگارش جدیدی از یام با نام جدید اکثر مشکلات مذکور در یام، از فدورا رخت خواهند بست.
چرا این موضوع خوب است؟
این مساله را باید از چندین دیدگاه متفاوت بررسی کرد، اگر فقط به عنوان کاربر نهایی به قضیه نگاه کنید، شما یک ابزار جدید را در پیش رو خواهید داشت که تقریبا تجربه خوب و با قابلیت اطمینان بیشتری را برای شما فراهم خواهد آورد با این حال اگر به رفع مشکلات وابستگیها به شکل سریعتر و بهتر فکر کنیم؛ خواهیم دید که تا چه حد از مشکلات گذشته برای نصب نرمافزارهایی که معمولا با خطای عدم یافتن وابستگی و ایرادات اینچنینی همراه بودند، رفع گشتهاند. این موضوع باعث خواهد شد تا تجربه بهتری در کار با توزیع فدورا داشته باشید. مشکلاتی که توسط حل مسائل وابستگیهای مبتنی بر SAT کاملا رفع شدهاند و دیگر در دیاناف خبری از آنان نخواهد بود.
همچنین کاربران عادی خواهند دید، تا چه میزان استفاده از رم سیستم کاهش داشته است. در این ابزار جدید دیاناف استفاده از پردازنده و حافظه اصلی سیستم کمتر از ابزار قدیمی و کهنه یام است. نصب و بهروزرسانی نیز کاملا سریعتر شده است و آخرین نکته نیز که ممکن است کمی مهمتر باشد؛ بهروزرسانی تقریبا کند نرمافزارها توسط یام بود که اگر در مقایسه با اپت-گت «apt-get» و زایپر «zypper» قرار دهیم کاملا کندتر بود.
دیاناف تاثیرات زیادی در سرعت نصب و بهروزرسانی خواهد داشت.
اگر از دیدگاه یک توسعهدهنده به قضیه نگاه کنیم؛ نیز تجربهای دلچسبتر را در اختیار شما قرار خواهد داد و نسبتا راحتتر از قبل خواهید بود. تمامی APIهای همراه و کدهای نرمافزار نیز به خوبی مستندسازی شدهاند و توسعهدهندگان به راحتی قادر خواهند بود به تعامل با آن بپردازند و بستههای خود را برای این توزیع مهیا کنند. همچنین قرار است که زبان C نیز افزوده شود و همچنین قرار است زبان C برای برخی از کتابخانهها و APIها استفاده شود، توسعهدهندگان فدورا کتابخانههای hawkeye و librepo را ایجاد کردهاند که کتابخانههایی به زبانهای پایتون و سی برای دریافت اطلاعات و مخازن هستند. این کتابخانهها به زبان سی باعث میشود تا توسعهدهندگان به راحتی بتوانند در زبانهای C مورد استفاده قرار گیرند. زبان C یکی از زبانهای محبوب بین توسعهدهندگان است که قرارگیری زبان C تغییر بسیار مبارک برای توسعهدهندههای این زبان خواهد بود.
چگونه دیاناف مورد استفاده قرار میگیرد؟
برای کاربر نهایی تفاوت خاصی در استفاده از این نرمافزار با نرمافزار قبلی مشاهده نخواهد شد. اگر شما به عنوان یک کاربر-نهایی و عادی در حال استفاده از این ابزار برای بهروزرسانی و نصب و حذف نرمافزارها از سیستم خود هستید، هیچ تفاوتی را در کلیدها و مولفههایی که باید استفاده شوند مشاهده نخواهید کرد به عنوان نمونه اگر شما با استفاده از دستور زیر به نصب یک برنامه اقدام میکردید. میتوانید آن را با دستور خط دوم آن جایگزین کنید که تنها نام ابزار تغییر کرده است و ساختار نوشتن آن برای نصب و حذف و … به منوال سابق خواهد بود. پس نگرانی از بابت یادگیری مجدد کلیدها و دیگر مسائل برای کاربران قدیمی و هواداران فدورا وجود ندارد.
نصب برنامه با استفاده از یام:
sudo yum install PACKAGENAME
نصب برنامه با استفاده از دیاناف:
sudo dnf install PACKAGENAME
اما برخی مشکلات نیز در طول راه وجود خواهند داشت، آری ممکن است دیاناف برای کسانی که از یام استفاده نمیکردند و یا کاربر حرفهای آن نیستند، مشکل خاصی را ایجاد ننماید و به راحتی بتوانند با این موضوع کنار بیایند. به طور کلی اگر شما کاربر حرفهای یام نبودهاید مشکل خاصی را در این مهاجرت به ابزار جدید احساس نخواهید کرد. اما در آن روی سکه اگر کاربر حرفهای یام باشید ممکن است برخی مشکلات در اجرای دستورات با ابزار جدید، گریبان گیر شما شود.
این مشکلات به برخی کلیدها و دستوراتی است که سابقا در یام رفتار خاصی داشتند که در دیاناف آن رفتارها به شکل دیگری تغییر یافتهاند و برخی امور به روش دیگری انجام میشوند. مانند کلید «skip-broken–» که بعد از دستور یام آمده و باعث میشد تا بهروزرسانی صورت گیرد اما وابستگیهای خراب نادیده گرفته شوند. اما دیاناف تمامی این وابستگیها را به آرامی و خاموش در پشت صحنه به طور پیشفرض نادیده میگیرد. اگر شما میخواهید که دیاناف وابستگیهای خراب را به شما گزارش کند؛ باید دستور بهروزرسانی را اجرا کرده و سپس با مولفه «check-update» ببینید که چه وابستگیی خراب است. برخی از کاربران حرفهای و کهنهکار فدورا، ممکن است چنین رفتاری را که مجبور هستند دو دستور مختلف را برای انجام کاری که قبلا به یک دستور نیاز داشت، اجرا کنند را نپسندند.
مهاجرت از یام به دیاناف در ابتدا ممکن است کمی دشوار باشد، مخصوصا هنگامی که کاربر بیخبر از همه جا ترمینال را باز کرده و دستوری را با استفاده از یام در خط فرمان اجرا کند که با پیغام خطای زیر مواجه میشود. این خطا ممکن است برای برخی کاربران کمی عجیب بهنظر برسد. اما بسیار بهتر از خطاهای معمول به جزئیات اشاره داشته است. اشاره به جزئیات خوب است اما بهتر بود که کمی سادهتر به کاربر اخطاری داده میشد.
Yum command has been deprecated, use dnf instead. See 'man dnf' and 'man yum2dnf' for more information. To transfer transaction metadata from yum to DNF, run 'dnf migrate'
به عنوان نمونه به جای آنکه همچون مدرسههای قدیم بیابیم و بگوییم، این کد اشتباه است و بهتر است از راهنمای دیاناف دیدن کنید! اطلاعات را مستقیم و به سادگی بیان کنیم تا مخاطب بیشتر متوجه موضوع شود تا اینکه بیشتر گیج شود که دستوری که نوشته است به این خطا چه قدر مرتبط است. تصور کنید شما از این مهاجرت آشنا نباشید. ممکن است تصور کنید که ساختار دستور جدید که پیشنهاد شده است متفاوت است که باید از راهنما آن را مطالعه کرد. با وجود این پیشنهاد میشد خطای فوق به شکل زیر بوده تا کاربر احساس سختتر شدن دستور جدید را نداشته باشد.
The Yum command is no longer in use. Please replace ‘yum’ with ‘dnf’ in your command to make use of the newer system.
همانطور که مشاهده میکنید خطای بالا بسیار بهتر از قبلی و بسیار مشخصتر است. به چه دلیل؟ به دلیل اینکه کاملا روشن است که دستور یام دیگر قدیمی شده و بهتر است از دستور دیاناف استفاده شود. دوما اینکه دستور جدید را فقط به عنوان جایگزین دستور قبلی به کار باید برد و فقط نام نرمافزار مدیریت بستههای نرمافزاری یام به دیاناف تغییر یافته است؛ در این مهاجرت نیز کلیدها و ساختار به منوال سابق است. به طور کلی در خطای فوق به طور کامل مشخص شده است که به جای «یام» ، «دیاناف» را جایگزین کنید؛ این خطا را میتوان بسیار ساده و سرراستتر از خطای پیشفرض دانست. با این وجود که مورد اشاره شده تاثیری بر کارایی برنامه و یا تجربه کاربری نمیگذارد؛ اما برای کاربران تازه کار و یا کاربرانی که مدتی از فدورا دور بودهاند و مجدد به استفاده از آن میپردازند، بسیار مناسبتر خواهد بود.
در آخر ممکن است که برخی کاربران هنوز از ابزار یام استفاده کنند که پیشنهاد میشود فرآیند استفاده از دیافان را آغاز کنند؛ زیرا باید بتوانند خود را با این توزیع همگام نگاه دارند. توجه کنید که این ابزار توسط توسعهدهندگان ایجاد شده است تا تجربه کاربری افزایش یابد،پس با استفاده کردن از ابزار قدیمی فقط خود را عقب نگاه داشتهاید.
در هر حال اگر شما نیز کاربر فدورا هستید و یا به این توزیع جوان، پویا و پیشرو در ارائه نرمافزارهای متنباز / آزاد که توسط ردهت پشتیبانی میشود، علاقه دارید؛ میتوانید نظرات خود را درباره این موضوع و مهاجرت به این ابزار اعلام کنید؟ آیا شما مشکل خاصی با این مهاجرت احساس کردهاید؟ آیا بهبود خاصی در عملکرد و سرعت آن مشاهده کردهاید؟ تمامی این سوالات و دیگر سوالات مطرح نشده و نظرات خود را در نظرات با ما در میان بگزارید. نظرات شما باعث دلگرمی ما در نوشتن و ارائه مطالب بیشتر خواهد شد و همچنین موجب بهبود کارمان و رفع ایرادهایمان در نوشتن خواهد بود. بنابراین همواره مارا از نظرات خود مطلع نمایید.