موافقت Debian coreutils کے Rust نفاذ کو استعمال کرنے کے لیے

Sylvestre Ledru، اسمبلی پر اپنے کام کے لیے جانا جاتا ہے۔ Debian GNU/Linux کلینگ کمپائلر کا استعمال کرتے ہوئے، coreutils کی افادیت کے متبادل سیٹ کا استعمال کرتے ہوئے ایک کامیاب تجربے کی اطلاع دی، جسے Rust میں دوبارہ لکھا گیا۔ coreutils میں یوٹیلٹیز شامل ہیں جیسے sort, cat, chmod, chown, chroot, cp, date, dd, echo, hostname, id, ln اور ls۔ انضمام کے پہلے مرحلے کے لیے، Debian coreutils کے Rust ورژن کے لیے درج ذیل اہداف مقرر کیے گئے تھے۔

  • Rust for میں ایک متبادل coreutils کے ساتھ ایک پیکیج بنانا Debian и Ubuntu.
  • لوڈ کر رہا ہے Debian rust-coreutils کا استعمال کرتے ہوئے GNOME ڈیسک ٹاپ کے ساتھ۔
  • ریپوزٹری سے 1000 مقبول ترین پیکجز انسٹال کریں۔
  • Firefox، LLVM/Clang، اور دانا کے ذرائع سے بنائیں Linux زنگ آلود ماحول میں۔

Rust/coreutils کے لیے 100 سے زیادہ پیچ بنانے کے بعد، تمام مطلوبہ اہداف کامیابی سے حاصل کر لیے گئے ہیں۔ جاری کام میں گمشدہ یوٹیلیٹیز اور آپشنز کو نافذ کرنا، کوڈ کے معیار اور مستقل مزاجی کو بہتر بنانا، ٹیسٹ سویٹ کو تیار کرنا، اور GNU Coreutils ٹیسٹ سویٹ چلانے کے دوران ہونے والے کریشوں کو ٹھیک کرنا شامل ہے (613 میں سے 141 ٹیسٹ اس وقت کامیابی سے چل رہے ہیں)۔

rust-coreutils پیکیج بناتے وقت، مقصد coreutils کو تبدیل کرنا نہیں تھا بلکہ انہیں ساتھ ساتھ چلانے کی اجازت دینا تھا۔ یوٹیلیٹیز کے Rust ورژن /usr/lib/cargo/bin/ میں انسٹال ہوتے ہیں اور اس ڈائرکٹری کو PATH ماحولیاتی متغیر میں شامل کرکے چالو کیا جاتا ہے۔ rust-coreutils پیکیج کی تخلیق تمام تعمیراتی انحصار کو ذخیرہ میں اپ لوڈ کرنے کی ضرورت کی وجہ سے پیچیدہ تھا، بشمول Rust اور مختلف چھوٹے کریٹ پیکجز۔

بوٹ امیج بنانا خاص طور پر مشکل نہیں تھا، لیکن پیکجز کو زنگ آلود ماحول کے مطابق ڈھالنے کے لیے خاصی مقدار میں کام کی ضرورت ہوتی ہے، کیونکہ بہت سے پوسٹ انسٹال اسکرپٹس coreutils سویٹ سے یوٹیلٹیز کو کال کرتی ہیں۔ زیادہ تر مسائل مطلوبہ اختیارات کی کمی کی وجہ سے پیدا ہوئے۔ مثال کے طور پر، "cp" یوٹیلیٹی میں "--archive" اور "--no-dereference" کے اختیارات کی کمی تھی، "ln" نے "--relative" آپشن کو سپورٹ نہیں کیا، mktemp نے "--t" کو سپورٹ نہیں کیا، sync نے "--fs" کو سپورٹ نہیں کیا، اور install نے "--owner" اور "--group" کو سپورٹ نہیں کیا۔ رویے کے فرق کی وجہ سے دیگر مسائل پیدا ہوئے، جیسے انسٹال یوٹیلیٹی /dev/null کو ان پٹ فائل کے طور پر سپورٹ نہیں کرتی، mkdir میں "--parent" کے بجائے "--parents" آپشن کی کمی ہے، وغیرہ۔

بڑے کوڈ بیس کی تعمیر کی جانچ میں کوئی بڑا مسئلہ پیش نہیں آیا۔ Firefox اور LLVM/Clang کی تعمیرات Python اسکرپٹس اور CMake استعمال کرتی ہیں، لہذا coreutils کو تبدیل کرنے سے ان پر کوئی اثر نہیں ہوا۔ دانا کی تعمیر Linux یہ نسبتا آسانی سے چلا گیا، صرف دو مسائل کے ساتھ: ایک علامتی لنک کے ساتھ chown استعمال کرتے وقت ایک غلطی کا پیغام اور ln یوٹیلیٹی میں "-n" آپشن کی کمی۔

ماخذ: opennet.ru

DDoS تحفظ، VPS VDS سرورز والی سائٹوں کے لیے قابل اعتماد ہوسٹنگ خریدیں۔ DDoS تحفظ، VPS VDS سرورز کے ساتھ قابل اعتماد ویب سائٹ ہوسٹنگ خریدیں۔ ProHoster