کچھ اور: ہائیکو ایپ بنڈلز؟

کچھ اور: ہائیکو ایپ بنڈلز؟

TL؛ ڈاکٹر: کیا ہائیکو کو ایپلیکیشن پیکجز کے لیے مناسب مدد مل سکتی ہے، جیسے ایپلی کیشن ڈائریکٹریز (جیسے .app میک پر) اور/یا ایپلیکیشن امیجز (لینکس AppImage)؟ میرے خیال میں یہ ایک قابل اضافہ ہوگا جسے دوسرے سسٹمز کے مقابلے میں درست طریقے سے نافذ کرنا آسان ہے کیونکہ زیادہ تر انفراسٹرکچر پہلے سے موجود ہے۔

ایک ہفتے پہلے میں نے ہائیکو دریافت کیا، جو ایک غیر متوقع طور پر اچھا نظام ہے۔ ٹھیک ہے، چونکہ میں طویل عرصے سے ڈائریکٹریز اور ایپلیکیشن امیجز میں دلچسپی رکھتا ہوں (میکنٹوش کی سادگی سے متاثر ہو کر)، یہ حیران کن نہیں کہ میرے ذہن میں ایک خیال آیا...

مکمل تفہیم کے لیے، میں AppImage کا تخلیق کار اور مصنف ہوں، ایک لینکس ایپلیکیشن ڈسٹری بیوشن فارمیٹ جس کا مقصد میک کی سادگی ہے اور ایپلیکیشن کے مصنفین اور اختتامی صارفین کو مکمل کنٹرول فراہم کرتا ہے (اگر آپ مزید جاننا چاہتے ہیں تو دیکھیں وکیپیڈیا и دستاویزات).

اگر ہم ہائیکو کے لیے AppImage بنائیں تو کیا ہوگا؟

آئیے تھوڑا سا سوچتے ہیں، خالصتاً نظریاتی: حاصل کرنے کے لیے کیا کرنے کی ضرورت ہے۔ اپلی کیشن، یا ہائیکو پر کچھ ایسا ہی؟ ابھی کچھ بنانا ضروری نہیں ہے، کیونکہ ہائیکو میں پہلے سے موجود نظام حیرت انگیز طور پر کام کرتا ہے، لیکن ایک خیالی تجربہ اچھا ہوگا۔ یہ لینکس ڈیسک ٹاپ ماحول کے مقابلے ہائیکو کی نفاست کو بھی ظاہر کرتا ہے، جہاں ایسی چیزیں بہت مشکل ہیں (مجھے یہ کہنے کا حق ہے: میں 10 سال سے ڈیبگنگ کے ساتھ جدوجہد کر رہا ہوں)۔

کچھ اور: ہائیکو ایپ بنڈلز؟
میکنٹوش سسٹم 1 پر، ہر ایپلیکیشن فائنڈر میں ایک علیحدہ فائل "منظم" تھی۔ AppImage کا استعمال کرتے ہوئے میں لینکس پر اسی صارف کے تجربے کو دوبارہ بنانے کی کوشش کر رہا ہوں۔

سب سے پہلے، ایک AppImage کیا ہے؟ یہ تھرڈ پارٹی ایپلی کیشنز کو جاری کرنے کا نظام ہے (مثال کے طور پر، الٹیمیکر کورا)، ایپلی کیشنز کو کب اور کیسے ریلیز کرنے کی اجازت دیتا ہے: مختلف ڈسٹری بیوشنز کی تفصیلات جاننے، پالیسیاں بنانے یا انفراسٹرکچر بنانے کی ضرورت نہیں ہے، مینٹینر سپورٹ کی ضرورت نہیں ہے، اور وہ صارفین کو یہ نہیں بتاتے ہیں کہ وہ کیا (نہیں) انسٹال کر سکتے ہیں۔ ان کے کمپیوٹرز پر۔ AppImage کو فارمیٹ میں میک پیکج کی طرح کچھ سمجھنا چاہیے۔ .app ڈسک کی تصویر کے اندر .dmg. بنیادی فرق یہ ہے کہ ایپلی کیشنز کاپی نہیں کی جاتی ہیں، لیکن ہمیشہ کے لیے AppImage کے اندر رہتی ہیں، بالکل ہائیکو پیکجز کی طرح .hpkg نصب، اور عام معنوں میں کبھی انسٹال نہیں ہوا۔

وجود کے 10 سال سے زائد عرصے کے دوران، AppImage نے کچھ اپیل اور مقبولیت حاصل کی ہے: Linus Torvalds نے خود عوامی طور پر اس کی توثیق کی، اور عام پروجیکٹس (مثال کے طور پر LibreOffice، Krita، Inkscape، Scribus، ImageMagick) نے اسے اہم طریقہ کے طور پر اپنایا ہے۔ مسلسل یا رات کے وقت تعمیرات کو تقسیم کرنے کے لیے، انسٹال یا ان انسٹال کردہ صارف ایپلی کیشنز میں مداخلت نہ کریں۔ تاہم، لینکس ڈیسک ٹاپ ماحول اور تقسیم اکثر اب بھی روایتی، سنٹرلائزڈ مینٹینر پر مبنی ڈسٹری بیوشن ماڈل سے چمٹے رہتے ہیں اور/یا اپنے انٹرپرائز بزنس اور/یا انجینئرنگ پروگراموں کو فروغ دیتے ہیں۔ Flatpak (ریڈ ہیٹ، فیڈورا، گنووم) اور پرسکون (کیننیکل، اوبنٹو)۔ یہ آتا ہے مضحکہ خیز طریقے سے.

یہ سب کیسے کام کرتا ہے۔

  • ہر AppImage میں 2 حصے ہوتے ہیں: ایک چھوٹا ڈبل ​​​​کلک ELF (نام نہاد۔ runtime.c)، اس کے بعد فائل سسٹم کی تصویر اسکواش ایف ایس.

کچھ اور: ہائیکو ایپ بنڈلز؟

  • اسکواش ایف ایس فائل سسٹم ایپلی کیشن کا پے لوڈ اور اسے چلانے کے لیے درکار ہر چیز پر مشتمل ہے، جسے صحیح ذہن میں ہر حالیہ ٹارگٹ سسٹم (لینکس ڈسٹری بیوشن) کے لیے ڈیفالٹ انسٹالیشن کا حصہ نہیں سمجھا جا سکتا۔ اس میں میٹا ڈیٹا بھی ہوتا ہے، جیسے ایپلیکیشن کا نام، شبیہیں، MIME کی قسمیں، وغیرہ۔

کچھ اور: ہائیکو ایپ بنڈلز؟

  • جب صارف چلاتا ہے، رن ٹائم فائل سسٹم کو ماؤنٹ کرنے کے لیے FUSE اور squashfuse کا استعمال کرتا ہے، اور پھر نصب کردہ AppImage کے اندر کچھ انٹری پوائنٹ (عرف AppRun) کو چلانے کو ہینڈل کرتا ہے۔
    عمل مکمل ہونے کے بعد فائل سسٹم ان ماؤنٹ ہو جاتا ہے۔

سب کچھ سادہ لگتا ہے۔

اور یہ چیزیں ہر چیز کو پیچیدہ کرتی ہیں:

  • لینکس کی اس قسم کی تقسیم کے ساتھ، "صحیح ذہن میں" کسی بھی چیز کو "ہر نئے ٹارگٹ سسٹم کے لیے ڈیفالٹ انسٹالیشن کا حصہ" نہیں کہا جا سکتا۔ ہم تعمیر کرکے اس مسئلے پر کام کرتے ہیں۔ خارج کرنے والا، آپ کو یہ تعین کرنے کی اجازت دیتا ہے کہ AppImage میں کیا پیک کیا جائے گا اور کیا کہیں اور لے جانے کی ضرورت ہوگی۔ ایک ہی وقت میں، ہم کبھی کبھی یاد کرتے ہیں، اس حقیقت کے باوجود کہ، عام طور پر، سب کچھ بہت اچھا کام کرتا ہے. اس وجہ سے، ہم تجویز کرتے ہیں کہ پیکیج بنانے والے تمام ٹارگٹ سسٹمز (تقسیم) پر AppImages کی جانچ کریں۔
  • ایپلیکیشن پے لوڈز کو فائل سسٹم میں دوبارہ منتقل کرنے کے قابل ہونا چاہیے۔ بدقسمتی سے، بہت سی ایپلی کیشنز کے پاس سخت کوڈ والے مطلق راستے ہوتے ہیں، مثال کے طور پر، وسائل میں /usr/share. اسے کسی نہ کسی طرح ٹھیک کرنے کی ضرورت ہے۔ اس کے علاوہ، آپ کو یا تو برآمد کرنا ہوگا۔ LD_LIBRARY_PATH، یا ٹھیک کریں۔ rpath تاکہ لوڈر متعلقہ لائبریریوں کو تلاش کر سکے۔ پہلے طریقہ میں اپنی خامیاں ہیں (جنہیں پیچیدہ طریقوں سے دور کیا جاتا ہے)، اور دوسرا محض بوجھل ہے۔
  • صارفین کے لیے سب سے بڑا UX نقصان یہ ہے۔ ایگزیکیوٹیبل بٹ سیٹ کریں۔ ڈاؤن لوڈ کرنے کے بعد AppImage فائل۔ یقین کریں یا نہیں، یہ کچھ لوگوں کے لیے ایک حقیقی رکاوٹ ہے۔ ایگزیکیوٹیبلٹی بٹ سیٹ کرنے کی ضرورت تجربہ کار صارفین کے لیے بھی بوجھل ہے۔ ایک کام کے طور پر، ہم نے ایک چھوٹی سروس انسٹال کرنے کا مشورہ دیا جو AppImage فائلوں کی نگرانی کرتی ہے اور ان کی ایگزیکیوٹیبلٹی بٹ سیٹ کرتی ہے۔ اس کی خالص شکل میں، یہ بہترین حل نہیں ہے، کیونکہ یہ باکس سے باہر کام نہیں کرے گا. لینکس ڈسٹری بیوشنز یہ سروس فراہم نہیں کرتی ہیں، اس لیے صارفین کو برا تجربہ ہوتا ہے۔
  • لینکس کے صارفین توقع کرتے ہیں کہ ایک نئی ایپلیکیشن اسٹارٹ اپ مینو میں ایک آئیکن رکھے گی۔ آپ سسٹم کو نہیں بتا سکتے: "دیکھو، ایک نئی ایپلیکیشن ہے، آئیے کام کریں۔" اس کے بجائے، XDG تفصیلات کے مطابق، آپ کو فائل کاپی کرنے کی ضرورت ہے۔ .desktop میں صحیح جگہ پر /usr پورے نظام کی تنصیب کے لیے، یا میں $HOME فرد کے لیے XDG تفصیلات کے مطابق مخصوص سائز کے شبیہیں، میں مخصوص جگہوں پر رکھنے کی ضرورت ہے۔ usr یا $HOME، اور پھر آئیکن کیشے کو اپ ڈیٹ کرنے کے لیے کام کے ماحول میں کمانڈز چلائیں، یا امید ہے کہ کام کرنے والے ماحول کا مینیجر اس کا پتہ لگا لے گا اور خود بخود ہر چیز کا پتہ لگائے گا۔ MIME اقسام کے ساتھ بھی ایسا ہی ہے۔ ایک حل کے طور پر، اسی سروس کو استعمال کرنے کی تجویز ہے، جو کہ قابل عمل جھنڈا سیٹ کرنے کے علاوہ، اگر آئیکنز وغیرہ ہوں گے تو۔ AppImage میں، XDG کے مطابق انہیں AppImage سے صحیح جگہوں پر کاپی کریں۔ جب حذف یا منتقل کیا جاتا ہے، سروس سے توقع کی جاتی ہے کہ وہ سب کچھ صاف کردے گی۔ بلاشبہ، ہر کام کرنے والے ماحول کے رویے میں، گرافک فائل فارمیٹس، ان کے سائز، سٹوریج کے مقامات اور کیشز کو اپ ڈیٹ کرنے کے طریقوں میں فرق ہوتا ہے، جو ایک مسئلہ پیدا کرتا ہے۔ مختصر میں، یہ طریقہ ایک بیساکھی ہے.
  • اگر اوپر کافی نہیں ہے، تو فائل مینیجر میں اب بھی کوئی AppImage آئیکن نہیں ہے۔ لینکس کی دنیا نے ابھی تک elficon کو لاگو کرنے کا فیصلہ نہیں کیا ہے (باوجود بحث и نفاذ)، لہذا آئیکن کو براہ راست ایپلی کیشن میں سرایت کرنا ناممکن ہے۔ تو یہ پتہ چلتا ہے کہ فائل مینیجر میں ایپلی کیشنز کے اپنے آئیکن نہیں ہوتے ہیں (کوئی فرق نہیں، AppImage یا کچھ اور)، وہ صرف اسٹارٹ مینو میں ہوتے ہیں۔ ایک کام کے طور پر، ہم تھمب نیلز استعمال کر رہے ہیں، ایک ایسا طریقہ کار جو اصل میں ڈیسک ٹاپ مینیجرز کو گرافک فائلوں کی تھمب نیل پیش نظارہ تصاویر کو ان کے آئیکن کے طور پر دکھانے کے لیے ڈیزائن کیا گیا تھا۔ نتیجتاً، ایگزیکیوٹیبلٹی بٹ سیٹ کرنے کے لیے سروس "منیچرائزر" کے طور پر بھی کام کرتی ہے، مناسب جگہوں پر آئیکن تھمب نیلز بناتی اور لکھتی ہے۔ /usr и $HOME. اگر AppImage کو حذف یا منتقل کیا جاتا ہے تو یہ سروس صفائی بھی کرتی ہے۔ اس حقیقت کی وجہ سے کہ ہر ڈیسک ٹاپ مینیجر کا برتاؤ قدرے مختلف ہوتا ہے، مثال کے طور پر، وہ کن فارمیٹس میں شبیہیں قبول کرتا ہے، کن سائزوں یا جگہوں پر، یہ سب واقعی تکلیف دہ ہے۔
  • اگر غلطیاں ہوتی ہیں تو ایپلیکیشن صرف عمل میں آنے پر کریش ہو جاتی ہے (مثال کے طور پر، ایک لائبریری ہے جو بیس سسٹم کا حصہ نہیں ہے اور AppImage میں فراہم نہیں کی گئی ہے)، اور GUI میں صارف کو کوئی نہیں بتا رہا ہے کہ اصل میں کیا ہو رہا ہے۔ ہم استعمال کرتے ہوئے اس کے ارد گرد حاصل کرنے کے لئے شروع کر دیا اطلاعات ڈیسک ٹاپ پر، جس کا مطلب ہے کہ ہمیں کمانڈ لائن سے غلطیوں کو پکڑنے کی ضرورت ہے، انہیں صارف کے سمجھے ہوئے پیغامات میں تبدیل کرنا ہوگا، جسے پھر ڈیسک ٹاپ پر ظاہر کرنے کی ضرورت ہے۔ اور ظاہر ہے، ہر ڈیسک ٹاپ ماحول انہیں تھوڑا مختلف طریقے سے ہینڈل کرتا ہے۔
  • اس وقت (ستمبر 2019 - مترجم کا نوٹ) مجھے سسٹم کو یہ بتانے کا کوئی آسان طریقہ نہیں ملا کہ فائل 1.png Krita کا استعمال کرتے ہوئے کھولنا ضروری ہے، اور 2.png - GIMP کا استعمال کرتے ہوئے

کچھ اور: ہائیکو ایپ بنڈلز؟
کراس ڈیسک ٹاپ تصریحات کے لیے سٹوریج کا مقام GNOME, KDE и Xfce freedesktop.org ہے۔

ہائیکو کے کام کے ماحول میں گہرائی سے بنے ہوئے نفاست کی سطح کو حاصل کرنا تصریحات کی وجہ سے مشکل ہے، اگر ناممکن نہیں تو XDG freedesktop.org سے کراس ڈیسک ٹاپ کے ساتھ ساتھ ان وضاحتوں کی بنیاد پر ڈیسک ٹاپ مینیجرز کے نفاذ کے لیے۔ مثال کے طور پر، ہم ایک سسٹم بھر میں فائر فاکس آئیکن کا حوالہ دے سکتے ہیں: بظاہر، XDG کے مصنفین نے سوچا بھی نہیں تھا کہ ایک صارف ایک ہی ایپلیکیشن کے کئی ورژن انسٹال کر سکتا ہے۔

کچھ اور: ہائیکو ایپ بنڈلز؟
فائر فاکس کے مختلف ورژن کے لیے شبیہیں

میں سوچ رہا تھا کہ سسٹم کے انضمام کو خراب کرنے سے بچنے کے لیے لینکس کی دنیا Mac OS X سے کیا سیکھ سکتی ہے۔ اگر آپ کے پاس وقت ہے اور آپ اس میں ہیں، تو ضرور پڑھیں کہ میک او ایس ایکس کے پہلے انجینئروں میں سے ایک آرناؤڈ گورڈول نے کیا کہا:

ہم ایپلیکیشن کو انسٹال کرنا اتنا ہی آسان بنانا چاہتے تھے جتنا کہ ایپلیکیشن آئیکن کو کہیں (سرور، ایکسٹرنل ڈرائیو) سے آپ کے کمپیوٹر ڈرائیو پر گھسیٹنا۔ ایسا کرنے کے لیے، ایپلی کیشن پیکج تمام معلومات کو اسٹور کرتا ہے، بشمول آئیکنز، ورژن، فائل کی قسم پر کارروائی کی جا رہی ہے، یو آر ایل اسکیموں کی قسم جو سسٹم کو ایپلی کیشن پر کارروائی کرنے کے لیے جاننا ضروری ہے۔ اس میں آئیکن سروسز اور لانچ سروسز ڈیٹا بیس میں 'سنٹرل اسٹوریج' کی معلومات بھی شامل ہیں۔ کارکردگی کو سپورٹ کرنے کے لیے، ایپلی کیشنز کو کئی 'معروف' جگہوں پر 'دریافت' کیا جاتا ہے: سسٹم اور صارف کی ایپلی کیشنز ڈائرکٹریز، اور کچھ دیگر خود بخود اگر صارف ایپلیکیشن پر مشتمل ڈائریکٹری میں فائنڈر پر جاتا ہے۔ عملی طور پر اس نے بہت اچھا کام کیا۔

https://youtu.be/qQsnqWJ8D2c
Apple WWDC 2000 سیشن 144 - Mac OS X: پیکیجنگ ایپلی کیشنز اور پرنٹنگ دستاویزات۔

لینکس ڈیسک ٹاپس پر اس انفراسٹرکچر جیسا کچھ بھی نہیں ہے، اس لیے ہم AppImage پروجیکٹ میں ساختی حدود کے ارد گرد کام تلاش کر رہے ہیں۔

کچھ اور: ہائیکو ایپ بنڈلز؟
کیا ہائیکو بچاؤ کے لیے آ رہا ہے؟

اور ایک اور چیز: ڈیسک ٹاپ ماحول کی بنیاد کے طور پر لینکس پلیٹ فارمز کی اتنی کم وضاحت کی جاتی ہے کہ بہت سی چیزیں جو ایک مستقل فل اسٹیک سسٹم میں کافی آسان ہیں لینکس میں مایوس کن طور پر بکھری ہوئی اور پیچیدہ ہیں۔ میں نے ڈیسک ٹاپ ماحولیات کے لیے لینکس پلیٹ فارم سے متعلق مسائل کے لیے ایک پوری رپورٹ وقف کر دی ہے (باخبر ڈویلپرز نے تصدیق کی ہے کہ ہر چیز بہت طویل عرصے تک اسی طرح رہے گی)۔

2018 میں لینکس ڈیسک ٹاپ ماحول کے مسائل پر میری رپورٹ

یہاں تک کہ لینس ٹوروالڈس نے اعتراف کیا کہ ٹکڑے ٹکڑے ہونے کی وجہ سے ورک اسپیس آئیڈیا ناکام ہوا۔

ہائیکو دیکھ کر اچھا لگا!

ہائیکو ہر چیز کو حیرت انگیز طور پر آسان بنا دیتا ہے۔

جبکہ AppImage کو ہائیکو میں "پورٹ کرنے" کا سادہ طریقہ یہ ہے کہ اس کے اجزاء (بنیادی طور پر runtime.c اور سروس) بنانے کی کوشش کی جائے (جو ممکن بھی ہو!)، یہ ہائیکو کو زیادہ فائدہ نہیں دے گا۔ کیونکہ درحقیقت ان میں سے زیادہ تر مسائل ہائیکو میں حل ہوتے ہیں اور تصوراتی طور پر درست ہیں۔ ہائیکو بالکل وہی سسٹم انفراسٹرکچر بلڈنگ بلاکس فراہم کرتا ہے جو میں لینکس ڈیسک ٹاپ ماحول میں اتنے عرصے سے تلاش کر رہا ہوں اور یقین نہیں کر سکتا کہ وہاں موجود نہیں تھے۔ یعنی:

کچھ اور: ہائیکو ایپ بنڈلز؟
یقین کریں یا نہیں، یہ وہ چیز ہے جس پر بہت سے لینکس صارفین قابو نہیں پا سکتے۔ ہائیکو پر سب کچھ خود بخود ہو جاتا ہے!

  • ELF فائلیں جن میں ایگزیکیوٹیبلٹی بٹ نہیں ہوتا ہے وہ فائل مینیجر میں ڈبل کلک کرنے پر خود بخود مل جاتی ہیں۔
  • ایپلیکیشنز میں پہلے سے موجود وسائل ہو سکتے ہیں، جیسے آئیکنز، جو فائل مینیجر میں ظاہر ہوتے ہیں۔ شبیہیں کے ساتھ خصوصی ڈائریکٹریز میں تصاویر کے ایک گروپ کو کاپی کرنے کی ضرورت نہیں ہے، اور اس لیے ایپلیکیشن کو حذف کرنے یا منتقل کرنے کے بعد انہیں صاف کرنے کی ضرورت نہیں ہے۔
  • ایپلیکیشنز کو دستاویزات کے ساتھ لنک کرنے کے لیے ڈیٹا بیس موجود ہے، اس کے لیے کسی فائل کو کاپی کرنے کی ضرورت نہیں ہے۔
  • قابل عمل فائل کے آگے lib/ ڈائریکٹری میں، لائبریریوں کو بطور ڈیفالٹ تلاش کیا جاتا ہے۔
  • کوئی متعدد تقسیم اور ڈیسک ٹاپ ماحول نہیں ہیں؛ جو بھی کام کرتا ہے، ہر جگہ کام کرتا ہے۔
  • چلانے کے لیے کوئی الگ ماڈیول نہیں ہے جو ایپلی کیشنز ڈائرکٹری سے مختلف ہو۔
  • ایپلیکیشنز کے پاس اپنے وسائل کے لیے بلٹ ان مطلق راستے نہیں ہیں؛ ان کے پاس رن ٹائم کے وقت مقام کا تعین کرنے کے لیے خصوصی کام ہوتے ہیں۔
  • کمپریسڈ فائل سسٹم امیجز کا آئیڈیا متعارف کرایا گیا ہے: یہ کوئی بھی hpkg پیکیج ہے۔ ان سب کو دانا کے ذریعے نصب کیا گیا ہے۔
  • ہر فائل اس ایپلی کیشن کے ذریعہ کھولی جاتی ہے جس نے اسے بنایا ہے، جب تک کہ آپ واضح طور پر دوسری صورت میں وضاحت نہ کریں۔ یہ کتنا ٹھنڈا ہے!

کچھ اور: ہائیکو ایپ بنڈلز؟
دو پی این جی فائلیں۔ مختلف شبیہیں نوٹ کریں جو یہ بتاتے ہیں کہ ڈبل کلک کرنے پر وہ مختلف ایپلی کیشنز کے ذریعہ کھولے جائیں گے۔ "اس کے ساتھ کھولیں:" ڈراپ ڈاؤن مینو کو بھی نوٹ کریں جہاں صارف انفرادی ایپلیکیشن منتخب کر سکتا ہے۔ کتنا سادہ!

ایسا لگتا ہے کہ لینکس پر AppImage کے لیے درکار بیساکھیوں اور کام کے بہت سے راستے ہائیکو پر غیر ضروری ہو جاتے ہیں، جس کی بنیادی سادگی اور نفاست ہے جس کی وجہ سے یہ ہماری زیادہ تر ضروریات کو پورا کرتا ہے۔

کیا ہائیکو کو آخر کار ایپ پیکجز کی ضرورت ہے؟

یہ ایک بڑے سوال کی طرف جاتا ہے۔ اگر لینکس کے مقابلے ہائیکو پر AppImage جیسا سسٹم بنانا آسان ہوتا تو کیا یہ کام کرنے کے قابل ہوتا؟ یا کیا ہائیکو نے اپنے hpkg پیکیج سسٹم کے ساتھ اس طرح کے خیال کو تیار کرنے کی ضرورت کو مؤثر طریقے سے ختم کر دیا ہے؟ ٹھیک ہے، جواب دینے کے لیے ہمیں AppImages کے وجود کے پیچھے محرکات کو دیکھنے کی ضرورت ہے۔

صارف کا نقطہ نظر

آئیے اپنے آخری صارف کو دیکھیں:

  • میں ایڈمنسٹریٹر (روٹ) پاس ورڈ مانگے بغیر ایپلیکیشن انسٹال کرنا چاہتا ہوں۔ ہائیکو پر ایڈمنسٹریٹر کا کوئی تصور نہیں ہے، صارف کا مکمل کنٹرول ہے کیونکہ یہ ایک ذاتی نظام ہے! (اصولی طور پر، آپ اسے ملٹی پلیئر موڈ میں تصور کر سکتے ہیں، مجھے امید ہے کہ ڈویلپرز اسے آسان رکھیں)
  • میں ایپلی کیشنز کے تازہ ترین اور عظیم ترین ورژن حاصل کرنا چاہتا ہوں، ان کے میری تقسیم میں ظاہر ہونے کا انتظار کیے بغیر (اکثر اس کا مطلب ہے "کبھی نہیں"، کم از کم جب تک کہ میں پورا آپریٹنگ سسٹم اپ ڈیٹ نہ کر دوں)۔ ہائیکو پر یہ تیرتی ریلیز کے ساتھ "حل" ہے۔ اس کا مطلب یہ ہے کہ ایپلی کیشنز کے جدید ترین اور عظیم ترین ورژن حاصل کرنا ممکن ہے، لیکن ایسا کرنے کے لیے آپ کو باقی سسٹم کو مسلسل اپ ڈیٹ کرنے کی ضرورت ہے، اسے مؤثر طریقے سے "موونگ ٹارگٹ" میں تبدیل کرنا ہوگا۔.
  • میں ایک ہی ایپلیکیشن کے کئی ورژن ساتھ ساتھ چاہتا ہوں، کیونکہ یہ جاننے کا کوئی طریقہ نہیں ہے کہ تازہ ترین ورژن میں کیا ٹوٹا ہے، یا، یوں کہئے، مجھے، بطور ویب ڈویلپر، براؤزر کے مختلف ورژن کے تحت اپنے کام کی جانچ کرنے کی ضرورت ہے۔ ہائیکو پہلا مسئلہ حل کرتا ہے، لیکن دوسرا نہیں۔ اپ ڈیٹس کو رول بیک کر دیا گیا ہے، لیکن صرف پورے سسٹم کے لیے؛ یہ ناممکن ہے (جہاں تک میں جانتا ہوں) چلانا، مثال کے طور پر، WebPositive یا LibreOffice کے ایک ہی وقت میں کئی ورژن۔

ڈویلپرز میں سے ایک لکھتا ہے:

بنیادی طور پر دلیل یہ ہے: استعمال کا معاملہ اتنا نایاب ہے کہ اس کے لیے اصلاح کرنا کوئی معنی نہیں رکھتا۔ ہائیکو پورٹس میں اسے ایک خاص کیس کے طور پر پیش کرنا قابل قبول لگتا ہے۔

  • مجھے ایپس کو وہیں رکھنے کی ضرورت ہے جہاں میں انہیں پسند کرتا ہوں، اپنی اسٹارٹ اپ ڈرائیو پر نہیں۔ میرے پاس اکثر ڈسک کی جگہ ختم ہوجاتی ہے، اس لیے مجھے ایپلیکیشنز (تمام ورژن جو میں نے ڈاؤن لوڈ کیے ہیں) اسٹور کرنے کے لیے ایک بیرونی ڈرائیو یا نیٹ ورک ڈائرکٹری کو جوڑنے کی ضرورت ہے۔ اگر میں ایسی ڈرائیو کو جوڑتا ہوں، تو مجھے ایپلیکیشنز کو ڈبل کلک کرکے لانچ کرنے کی ضرورت ہے۔ ہائیکو پیکجز کے پرانے ورژن محفوظ کرتا ہے، لیکن میں نہیں جانتا کہ انہیں ایکسٹرنل ڈرائیو میں کیسے منتقل کیا جائے، یا بعد میں وہاں سے ایپلیکیشنز کو کیسے لانچ کیا جائے۔

ڈویلپر کا تبصرہ:

تکنیکی طور پر، یہ ماؤنٹ کمانڈ کے ساتھ پہلے ہی ممکن ہے۔ بلاشبہ، جیسے ہی ہمارے پاس کافی دلچسپی رکھنے والے صارفین ہوں گے ہم اس کے لیے ایک GUI بنائیں گے۔

  • مجھے فائل سسٹم میں بکھری ہوئی لاکھوں فائلوں کی ضرورت نہیں ہے جن کا میں خود انتظام نہیں کرسکتا۔ مجھے فی ایپلیکیشن ایک فائل چاہیے جسے میں آسانی سے ڈاؤن لوڈ، منتقل، ڈیلیٹ کر سکوں۔ ہائیکو پر یہ مسئلہ پیکیجز کے ذریعے حل کیا جاتا ہے۔ .hpkg، جو ہزاروں فائلوں سے ایک میں، مثال کے طور پر، python کو منتقل کرتا ہے۔ لیکن اگر وہاں ہے، مثال کے طور پر، Scribus python استعمال کر رہا ہے، تو مجھے کم از کم دو فائلوں سے نمٹنا ہوگا۔ اور مجھے ان کے ورژن رکھنے کا خیال رکھنا ہوگا جو ایک دوسرے کے ساتھ کام کرتے ہیں۔

کچھ اور: ہائیکو ایپ بنڈلز؟
AppImages کے متعدد ورژن ایک ہی لینکس پر ساتھ ساتھ چل رہے ہیں۔

ایک ایپلیکیشن ڈویلپر کا نقطہ نظر

آئیے ایک ایپلیکیشن ڈویلپر کے نقطہ نظر سے دیکھتے ہیں:

  • میں صارف کے پورے تجربے کو کنٹرول کرنا چاہتا ہوں۔ میں یہ بتانے کے لیے کسی آپریٹنگ سسٹم پر انحصار نہیں کرنا چاہتا کہ مجھے کب اور کیسے ایپلیکیشنز جاری کرنی چاہئیں۔ ہائیکو ڈویلپرز کو ان کے اپنے hpkg ذخیروں کے ساتھ کام کرنے کی اجازت دیتا ہے، لیکن اس کا مطلب ہے کہ صارفین کو انہیں دستی طور پر ترتیب دینا پڑے گا، جو خیال کو "کم پرکشش" بناتا ہے۔
  • میرے پاس اپنی ویب سائٹ پر ایک ڈاؤن لوڈ صفحہ ہے جہاں میں تقسیم کرتا ہوں۔ .exe ونڈوز کے لیے، .dmg میک کے لیے اور .AppImage لینکس کے لیے۔ یا شاید میں اس صفحہ تک رسائی کو منیٹائز کرنا چاہتا ہوں، کچھ بھی ممکن ہے؟ میں وہاں ہائیکو کے لیے کیا رکھوں؟ فائل کافی ہے۔ .hpkg صرف ہائیکو پورٹس سے انحصار کے ساتھ
  • میرے سافٹ ویئر کو دوسرے سافٹ ویئر کے مخصوص ورژن درکار ہیں۔ مثال کے طور پر، یہ معلوم ہے کہ Krita کو Qt کے ایک پیچ شدہ ورژن کی ضرورت ہے، یا Qt جو Krita کے مخصوص ورژن کے ساتھ ٹھیک ہے، کم از کم اس وقت تک جب تک کہ پیچ واپس Qt میں نہ دھکیل جائیں۔ آپ اپنی درخواست کے لیے اپنے Qt کو پیکج میں پیک کر سکتے ہیں۔ .hpkgلیکن غالباً یہ خوش آئند نہیں ہے۔

کچھ اور: ہائیکو ایپ بنڈلز؟
باقاعدہ ایپلیکیشن ڈاؤن لوڈ صفحہ۔ میں یہاں ہائیکو کے لیے کیا پوسٹ کروں؟

بنڈل بنڈل (موجودہ ایپلی کیشن ڈائریکٹریز جیسے AppDir یا .app ایپل کے انداز میں) اور/یا تصاویر (بہت زیادہ ترمیم شدہ AppImages کی شکل میں یا .dmg ایپل سے) ایپلی کیشنز ہائیکو ڈیسک ٹاپ ماحول میں ایک مفید اضافہ؟ یا کیا یہ پوری تصویر کو کمزور کر دے گا اور ٹکڑے ٹکڑے کر دے گا، اور اس وجہ سے پیچیدگی میں اضافہ کرے گا؟ میں پھٹا ہوا ہوں: ایک طرف، ہائیکو کی خوبصورتی اور نفاست اس حقیقت پر مبنی ہے کہ عام طور پر کچھ کرنے کا ایک طریقہ ہوتا ہے، نہ کہ بہت سے۔ دوسری طرف، کیٹلاگ اور/یا ایپلیکیشن سویٹس کے لیے زیادہ تر انفراسٹرکچر پہلے سے موجود ہے، اس لیے سسٹم باقی چند فیصد کو جگہ پر آنے کے لیے پکارتا ہے۔

ڈویلپر کے مطابق مسٹر. waddlesplash

لینکس پر وہ (کیٹلاگ اور ایپلیکیشن کٹس، - تقریبا. مترجم) غالباً نظامی مسائل کا تکنیکی حل ہے۔ ہائیکو میں ہم صرف سسٹم کے مسائل کو حل کرنے کو ترجیح دیتے ہیں۔

آپ کیا سوچتے ہیں؟

جواب دینے سے پہلے...

رکو، آئیے ایک فوری حقیقت کی جانچ کرتے ہیں: حقیقت میں درخواست ڈائریکٹریز - پہلے ہی ہائیکو کا حصہ:

کچھ اور: ہائیکو ایپ بنڈلز؟
ایپلیکیشن ڈائرکٹریز ہائیکو پر پہلے سے موجود ہیں، لیکن فائل مینیجر میں ابھی تک معاون نہیں ہیں۔

وہ میکنٹوش فائنڈر کی طرح تعاون یافتہ نہیں ہیں۔ کتنا اچھا ہو گا اگر QtCreator ڈائرکٹری میں اوپر بائیں کونے میں "QtCreator" نام اور آئیکن ہو، جب ڈبل کلک کرنے پر ایپلیکیشن لانچ ہو؟

تھوڑی دیر پہلے میں پہلے ہی پوچھا:

کیا آپ کو یقین ہے کہ آپ آج اپنی دہائیوں پرانی ایپس چلا سکتے ہیں جب تمام ایپ اسٹورز اور ڈسٹری بیوشن ریپوزٹریز ان اور ان کے انحصار کو بھول چکے ہیں؟ کیا آپ کو یقین ہے کہ آپ مستقبل میں بھی اپنی موجودہ ملازمت تک رسائی حاصل کر سکیں گے؟

کیا ہائیکو کی طرف سے پہلے ہی کوئی جواب موجود ہے، یا کیٹلاگ اور ایپلیکیشن بنڈل یہاں مدد کر سکتے ہیں؟ میرے خیال میں وہ کر سکتے ہیں۔

مسٹر کے مطابق waddlesplash:

ہاں، ہمارے پاس اس سوال کا جواب ہے: ہم ان ایپلی کیشنز کو اس وقت تک سپورٹ کریں گے جب تک کہ ضرورت ہو جب تک کہ کوئی ان کے فائل فارمیٹس کو صحیح طریقے سے پڑھ نہ لے یا ون ٹو ون فعالیت فراہم نہ کر سکے۔ ہائیکو پر BeOS R5 ایپس کو سپورٹ کرنے کا ہمارا عزم اس کا ثبوت ہے...

یہ بات یقینی ہے!

ہائیکو کو کیا طریقہ اختیار کرنا چاہیے؟

میں hpkg، ڈائریکٹریز اور ایپلیکیشن امیجز کے پرامن بقائے باہمی کا تصور کر سکتا ہوں:

  • سسٹم سافٹ ویئر استعمال کرتا ہے۔ .hpkg
  • سب سے زیادہ استعمال ہونے والے سافٹ ویئر کے لیے (خاص طور پر وہ جنہیں رولنگ ریلیز شیڈول کرنے کی ضرورت ہے)، استعمال کریں۔ .hpkg (تمام معاملات کا تقریباً 80%)
  • کچھ بذریعہ انسٹال .hpkg، ایپلی کیشنز کو ایپلی کیشن ڈائرکٹری انفراسٹرکچر (جیسے QtCreator) میں منتقل کرنے سے فائدہ ہوگا: انہیں اس طرح تقسیم کیا جائے گا .hpkg، پہلے کی طرح.

مسٹر. waddlesplash لکھتے ہیں:

اگر آپ کو صرف درخواستیں دیکھنے کی ضرورت ہے۔ /system/apps، اس کے بجائے ہمیں ڈیسک بار میں ڈائریکٹریز کو صارفین کے لیے زیادہ قابل انتظام بنانا چاہیے، چونکہ /system/apps صارفین کے ذریعہ باقاعدگی سے کھولنے اور دیکھنے کا ارادہ نہیں ہے (میک او ایس کے برعکس)۔ اس طرح کے حالات کے لیے، ہائیکو کا ایک مختلف نمونہ ہے، لیکن یہ آپشن، نظری طور پر، قابل قبول ہے۔

  • ہائیکو کو ایپلی کیشن امیجز کو چلانے کے لیے بنیادی ڈھانچہ ملتا ہے، سافٹ ویئر کی رات کے وقت، مسلسل اور ٹیسٹ کی تعمیرات کے ساتھ ساتھ ایسے معاملات کے لیے جب صارف اسے "وقت پر منجمد" کرنا چاہتا ہے، نجی اور اندرونی سافٹ ویئر کے لیے، اور دیگر خصوصی استعمال کے معاملات (تقریباً 20%) تمام میں سے). ان تصاویر میں ایپلی کیشن کو چلانے کے لیے ضروری فائلیں ہوتی ہیں۔ .hpkg، سسٹم کے ذریعہ نصب کیا گیا ہے، اور درخواست مکمل ہونے کے بعد - ان ماؤنٹڈ۔ (شاید فائل مینیجر فائلیں ڈال سکتا ہے۔ .hpkg ایپلی کیشن امیجز میں، خود بخود یا صارف کی درخواست پر - ٹھیک ہے، جیسے جب آپ کسی ایپلیکیشن کو نیٹ ورک ڈائرکٹری یا بیرونی ڈرائیو پر گھسیٹتے ہیں۔ یہ صرف ایک گانا ہے! یا بلکہ، شاعری - ہائیکو۔) دوسری طرف، صارف تصویر کے مواد کو فائلوں کی شکل میں انسٹال کرنا چاہتا ہے۔.hpkg، جس کے بعد ان کو اسی طرح اپ ڈیٹ اور پروسیس کیا جائے گا جیسے وہ ہائیکو ڈیپو کے ذریعے انسٹال کیا گیا تھا... ہمیں دماغی طوفان کی ضرورت ہے)۔

مسٹر سے اقتباس waddlesplash:

بیرونی ڈرائیوز یا نیٹ ورک ڈائریکٹریز سے ایپلیکیشنز کو چلانا ممکنہ طور پر مفید ہو سکتا ہے۔ اور pkgman کے لیے مزید "زونز" کو ترتیب دینے کی صلاحیت کو شامل کرنا یقیناً ایک اچھی خصوصیت ہوگی۔

ایسا نظام hpkg، ڈائریکٹریز، اور ایپلیکیشن امیجز کا فائدہ اٹھائے گا۔ وہ انفرادی طور پر اچھے ہیں، لیکن مل کر ناقابل تسخیر بن جائیں گے۔

حاصل يہ ہوا

ہائیکو کا ایک فریم ورک ہے جو پی سی کے لیے ایک سادہ اور نفیس صارف کا تجربہ فراہم کرتا ہے، اور جو عام طور پر لینکس پی سی کے لیے فراہم کیا جاتا ہے اس سے کہیں زیادہ ہے۔ پیکیج سسٹم .hpkg ایسی ہی ایک مثال ہے، لیکن باقی نظام بھی نفاست سے بھرا ہوا ہے۔ تاہم، ہائیکو کو مناسب ڈائریکٹری اور ایپلیکیشن امیج سپورٹ سے فائدہ ہوگا۔ ایسا کرنے کا بہترین طریقہ ان لوگوں کے ساتھ بات چیت کے قابل ہے جو ہائیکو، اس کے فلسفے اور فن تعمیر کو مجھ سے کہیں بہتر جانتے ہیں۔ سب کے بعد، میں ایک ہفتے سے کچھ زیادہ عرصے سے ہائیکو استعمال کر رہا ہوں۔ بہر حال، مجھے یقین ہے کہ ہائیکو کے ڈیزائنرز، ڈویلپرز، اور معمار اس تازہ نقطہ نظر سے فائدہ اٹھائیں گے۔ کم از کم، میں ان کا "سارنگ پارٹنر" بن کر خوش ہوں گا۔ میرے پاس لینکس ایپلیکیشن کیٹلاگ اور بنڈلز کے ساتھ 10 سال سے زیادہ کا تجربہ ہے، اور میں ہائیکو میں ان کے لیے استعمال تلاش کرنا چاہوں گا، جس کے لیے میرے خیال میں وہ بالکل موزوں ہیں۔ میں نے جو ممکنہ حل تجویز کیے ہیں وہ کسی بھی طرح سے میرے بیان کردہ مسائل کے لیے صرف صحیح نہیں ہیں، اور اگر ہائیکو ٹیم دوسرے، زیادہ خوبصورت حل تلاش کرنے کا فیصلہ کرتی ہے، تو میں اس کے لیے سب کچھ ہوں۔ بنیادی طور پر، میں پہلے ہی اس خیال کے بارے میں سوچ رہا ہوں کہ سسٹم کیسے بنایا جائے۔ hpkg اس کے کام کرنے کے طریقے کو تبدیل کیے بغیر بھی زیادہ حیرت انگیز۔ یہ پتہ چلتا ہے کہ ہائیکو ٹیم ایک طویل عرصے سے ایک پیکیج مینجمنٹ سسٹم کو لاگو کرتے وقت ایپلیکیشن بنڈلز کے بارے میں سوچ رہی تھی، لیکن بدقسمتی سے (میرے خیال میں) یہ خیال "متروک" ہو گیا۔ شاید یہ اسے بحال کرنے کا وقت ہے؟

خود کریں! سب کے بعد، ہائیکو پراجیکٹ ڈی وی ڈی یا یو ایس بی سے بوٹنگ کے لیے تصاویر فراہم کرتا ہے۔ روزانہ.
کیا آپ کا کوئی سوال ہے؟ ہم آپ کو روسی بولنے والوں کی دعوت دیتے ہیں۔ ٹیلیگرام چینل.

خرابی کا جائزہ: اپنے آپ کو C اور C++ میں پاؤں میں گولی مارنے کا طریقہ۔ ہائیکو OS ترکیب کا مجموعہ

سے مصنف ترجمہ: یہ ہائیکو کے بارے میں سیریز کا آٹھواں اور آخری مضمون ہے۔

مضامین کی فہرست: سب سے پہلے دوسری تیسرا چوتھا پانچویں چھٹے ساتواں

سروے میں صرف رجسٹرڈ صارفین ہی حصہ لے سکتے ہیں۔ سائن ان، برائے مہربانی.

کیا hpkg سسٹم کو لینکس میں پورٹ کرنا کوئی معنی رکھتا ہے؟

  • جی ہاں

  • کوئی

  • پہلے سے نافذ، میں تبصرے میں لکھوں گا

20 صارفین نے ووٹ دیا۔ 5 صارفین غیر حاضر رہے۔

ماخذ: www.habr.com

نیا تبصرہ شامل کریں