ڊيبين کي ترتيب ڏيڻ لاءِ استعمال ڪرڻ لاءِ زنگ لاڳو ڪرڻ coreutils

Sylvestre Ledru، Clang compiler استعمال ڪندي پنهنجي ڪم جي تعمير Debian GNU/Linux لاءِ سڃاتل آهي، هڪ ڪامياب تجربي جي رپورٽ ڪئي استعمال ڪري هڪ متبادل سيٽ استعمال ڪندي يوٽيلٽيز، coreutils، ٻيهر لکجي، Rust ٻولي ۾. Coreutils ۾ افاديت شامل آهن جيئن ترتيب، ڪيٽ، chmod، chown، chroot، cp، تاريخ، dd، echo، hostname، id، ln ۽ ls. ڪوريوٽلز جي زنگ واري نسخي جي ديبين ۾ انضمام جي پهرين مرحلي لاءِ، هيٺيان مقصد مقرر ڪيا ويا:

  • Debian ۽ Ubuntu لاءِ coreutils لاءِ زنگ جو متبادل پيڪيج ڪريو.
  • ڊيبين کي بوٽنگ GNOME ڊيسڪ ٽاپ سان استعمال ڪندي rust-coreutils.
  • مخزن مان 1000 تمام مشهور پيڪيجز کي انسٽال ڪرڻ.
  • تعمير ڪريو فائر فاڪس، LLVM/Clang ۽ Linux kernel ذريعن مان هڪ ماحول ۾ rust-coreutils سان.

Rust/coreutils لاءِ 100 کان وڌيڪ پيچ ٺاھڻ کان پوءِ، اسان ڪاميابيءَ سان مڙني مقصدن کي حاصل ڪرڻ جي قابل ٿي وياسين. جاري ڪم ۾ شامل آهن گم ٿيل يوٽيلٽيز ۽ آپشنز تي عملدرآمد، ڪوڊ جي معيار ۽ هڪجهڙائي کي بهتر بڻائڻ، ٽيسٽ سوٽ کي ڊولپ ڪرڻ، ۽ حادثن کي ختم ڪرڻ جيڪي واقعا ٿين ٿا جڏهن GNU Coreutils مان ٽيسٽ سوٽ هلائي رهيا آهن (141 مان 613 ٽيسٽ ڪاميابيءَ سان هلي رهيا آهن. ).

جڏهن rust-coreutils پيڪيج ٺاهيندي، اهو فيصلو ڪيو ويو ته coreutils پيڪيج کي تبديل نه ڪيو وڃي، پر انهن کي متوازي ڪم ڪرڻ جي صلاحيت مهيا ڪرڻ لاء. يوٽيلٽي آپشنز Rust ٻولي ۾ انسٽال ٿيل آهن /usr/lib/cargo/bin/ ۽ هن ڊاريڪٽري کي PATH ماحوليات جي متغير ۾ شامل ڪندي چالو ڪيو ويو آهي. rust-coreutils پيڪيج ٺاهڻ تمام پيچيدگين کي ذخيرو ۾ ڊائون لوڊ ڪرڻ جي ضرورت جي ڪري پيچيده ٿي ويو، بشمول Rust ۽ مختلف ننڍن ڪرٽ پيڪيجز.

بوٽ جي تصوير ٺاهڻ ڪو مسئلو نه هو، پر پيڪيجز کي ماحول لاءِ ترتيب ڏيڻ لاءِ rust-coreutils سان تمام گهڻو ڪم ڪرڻ جي ضرورت آهي، ڇاڪاڻ ته ڪيتريون ئي پوسٽ-انسٽال اسڪرپٽ coreutils سيٽ مان يوٽيلٽيز کي ڪال ڪن ٿيون. مسئلن جو سڀ کان وڏو تعداد ضروري اختيارن جي کوٽ جي ڪري پيدا ٿيو، مثال طور، "سي پي" يوٽيلٽي ۾ "--آرڪائيو" ۽ "--ن-ڊيريفرنس" اختيار نه هئا، "ln" "- جي حمايت نه ڪئي. لاڳاپيل" آپشن، mktemp "-t" کي سپورٽ نه ڪيو، هم وقت سازي ۾ "-fs"، انسٽال ڪرڻ ۾ - "--مالڪ" ۽ "-گروپ". ٻيا مسئلا رويي ۾ اختلافن جي ڪري پيدا ٿيا، مثال طور، انسٽالٽ يوٽيلٽي /dev/null کي ان پٽ فائل طور بيان ڪرڻ جي حمايت نه ڪئي، mkdir وٽ "-parent" جي بدران "-parents" اختيار هو، وغيره.

جڏهن وڏي ڪوڊ جي اسمبلي جي جانچ ڪندي، ڪو وڏو مسئلو پيدا نه ٿيو. جڏهن Firefox ۽ LLVM/Clang ٺاهي رهيا آهن، python اسڪرپٽ ۽ cmake استعمال ڪيا ويندا آهن، تنهنڪري coreutils کي تبديل ڪرڻ انهن تي اثر انداز نه ڪيو. لينڪس ڪرنل جي تعمير نسبتا آسان ٿي وئي، صرف ٻه مسئلا پيدا ٿيڻ سان: غلطي جي پيداوار جڏهن استعمال ڪندي هڪ علامتي لنڪ سان ۽ "-n" اختيار جي کوٽ ln يوٽيليٽ ۾.

جو ذريعو: opennet.ru

تبصرو شامل ڪريو