اگر علاقمند به نوشتن برنامه برای توزیع پارچ هستید، توصیه میکنم این صفحات را یک نگاهی بندازید.
در این صفحات با مثالهای متعدد نحوه نوشتن برنامه با زبانهای راست، پایتون، سی، سیپلاسپلاس و فریمورکهای جیتیکی و کیوت توضیح داده شده، همچنین برخی از مسائل مربوط به ساختار ایزوها و نحوه پکیجینگ نیست حضور دارند.
برای مثال در این صفحه ذکر شده که توزیع پارچ چه افزودهای به آرچ دارد:
- بهبود عملکرد کلی برنامه (رفع مشکل کندی)
- بهبود امنیت در نصب بسته از AUR
- افزوده شدن قابلیت بهاشتراکگذاری پیوند برنامهها (فیلم)
- افزوده شدن ویژگی ترجمه و ترجمه کلی برنامه به زبان فارسی
برای نصب و یا بهروزرسانی:
sudo pacman -Syu pastor
برای گزارش مشکلات پارچ استور میتوانید به فروم پارچ و یا گیتهاب این برنامه مراجعه کنید.
مستندات توسعهی پارچ گنو/لینوکس اکنون در نشانی developer.parchlinux.com بهصورت یکپارچه در دسترس است. این پورتال مرجع رسمی توسعه، راهنمای طراحی و کتابچهی مهندسی پارچ است.
محتوای آن از آغاز به کار و معماری سیستم تا توسعهی اپلیکیشن، بستهبندی، ساخت ISO، آزمون، بومیسازی و امنیت را در بر میگیرد. راهنمای طراحی و نمونهی ماکآپ اپلیکیشنها نیز در آن گنجانده شده است تا توسعهدهندگان بتوانند برنامههای خود را مطابق با زبان طراحی پارچ بسازند.
مستندات فنی بدون مشارکت جامعه بهسرعت منسوخ میشود. از همهی علاقهمندان دعوت میشود که در تکمیل و اصلاح این مستندات مشارکت کنند. مخزن پروژه عمومی است و درخواست ادغام (pull request) میپذیرد. پیش از نوشتن محتوا، مطالعهی فایل CONTENT_GUIDE.md ضروری است، زیرا ساختار و قواعد نگارش در آن تشریح شده و بررسی خودکار نیز بر اساس آن انجام میشود.
در این نسخه امکان اجرای بازیهای ویندوزی مستقیماً از طریق گیمهاب به این ابزار اضافه شده و همچنین امکان گرفتن کاور و دیدن عملکرد بازی قبل از نصب نیز فراهم شده است.
برای اجرای بازیها در گیمهاب به نصب بودن umu-launcher نیاز است.
همچنین ظاهر برنامه بهبود پیدا کرده و کیبورد شورتکاتهای بیشتری نیز اضافه شده اند.
🚀 پارچ استور ۰.۳ منتشر شد
پشتیبانی از AUR با این نسخه بهبود جدیتری پیدا کرد.
وابستگیها دیگر نادیده گرفته نمیشوند. پارچ استور وابستگیهای مفقود را خودش پیدا و قبل از ساخت نصب میکند، حتی اگر فقط در AUR باشند.
نصب همزمان چند بسته هم حالا صفبندی میشود و بیلدها وسط هم نمیپرند. قبل از هر ساخت، PKGBUILD و .install برای الگوهای خطرناک اسکن میشوند. باگ ناپدید شدن برنامهها از منوی دسکتاپ بعد از آپدیت هم رفع شد.
برای آپدیت، پارچ استور را باز کنید و از همانجا نسخه جدید را نصب کنید. یا در ترمینال:
علت رخ دادن این خطا، تداخل همزمانی (Race Condition) و خطای حافظه (Use-After-Free) بین ترد پسزمینه و ترد اصلی رابط کاربری بود. زمانی که کاربر در صفحه پارتیشنبندی نوع سواپ را تغییر میداد، چون جدول پارتیشنها دستکاری شده و وضعیت دیسک اصطلاحاً Dirty بود، تابع applyActionChoice عملیات بازگردانی وضعیت دیسک (revertDevice) را از طریق دیالوگ اسکن آغاز میکرد؛ اما منتظر اتمام آن نمیماند و بلافاصله در ترد اصلی اقدام به بهروزرسانی پیشنمایش گرافیکی پارتیشنها (updateActionChoicePreview) میکرد.
در همین لحظه، تابع revertDevice که توسط QtConcurrent::run در یک ترد پسزمینه در حال اجرا بود، مستقیماً متد init مدل پارتیشن را فراخوانی کرده و ساختار داده دیسک را بازنشانی میکرد. دستکاری مدل داده کیوت (QAbstractItemModel) و ارسال سیگنالهای ریست مستقیماً از داخل یک ترد غیر از ترد اصلی GUI، برخلاف اصول کیوت و کاملاً ناامن است. همزمانی این اتفاق با تلاش ترد اصلی برای خواندن حافظه شیء Device که در همان ثانیه در حال تخریب و بازسازی بود، باعث میشد اندیسهای موجود در جدول پارتیشنها به حافظه آزادشده اشاره کنند و با خطای Segmentation Fault برنامه فوراً کرش کند.