سائناپٹک، مکمل سہولیات کے حامل پیکج مینیجر کی ایک مثال
**پیکج مینیجر** ایسے سافٹ وئیر یا سافٹ وئیر کا مجموعہ ہوتے ہیں جنہیں کمپیوٹر میں دوسرے سافٹ وئیر نصب کرنے(Installation)، تبدیل کرنے (Modification)، ترتیبات (Configuration) کو منظم کرنے یا کمپیوٹر سے ہٹانے کے لیے استعمال کیا جاتا ہے۔ اگرچہ یہ کام کمپیوٹر استعمال کرنے والے لوگ خود بھی کرسکتے ہیں لیکن بعض سافٹ وئیر کا نظام کافی پیچیدہ ہوتا ہے لہٰذا  انھیں منظم رکھنے کے لیے سافٹ وئیر تیار کرنے والے پیکج مینجیر بھی بناتے ہیں

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

پیکج مینیجرز کو بنانے کا مقصد یہی ہے کہ صارف کو سافٹ وئیر کو منظم کرنے سے آزادی مل جائے کیونکہ یہ چیزیں کئی مرتبہ بہت زیادہ وقت ضائع کرتی ہیں۔ عام طور پر پیکج مینیجر لینکس یا یونکس جیسے آپریٹنگ سسٹم کے لیے تیار کیے جاتے ہیں اور انٹرپرائز کے درجے کے سافٹ وئیر کو منظم کرنے کے لیے استعمال کیا جاتا ہے۔

افعال
-----

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

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

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

### مشترکہ منحصرات کے مسائل

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

### مقامی تالیف کے پیکجز کے لیے مواجہ

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

تاہم کچھ ایسے آلات موجود ہیں جن کی مدد سے مقامی تالیف کو بھی پیکج مینیجر کے ساتھ منظم کیا جا سکتا ہے۔چیک انسٹال جنٹو لینکس اور آرک لینکس اسی قسم کے آلات ہیں ۔ 

### ترتیبات کا انتظام

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

### مخازن

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

### ترقی

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

مثال کے طور پر

* *یم (Yum) نامی پیکج مینیجر میں اوپن آفس کے لیے سنٹکس ایکسکلوڈ \**
* پیک مین میں اوپن کے لیے  اگنور پی کے جی ۔ یہ دونوں مثالیں اوپن آفس سافٹ وئیر کو ترقی دینے روکنے کے لیے ہیں
* dpkg اور dselect میں بعض فلیگ کی مدد سے یہ سہولت لی جا سکتی ہے۔
* اے پی ٹی میں بھی فلیگ کی مدد سے پیچیدہ قسم کی پننگ کی جا سکتی ہے ۔
* صارف کسی پیکج کو بلیک لسٹ بھی کرکے یہ کام کرسکتے ہیں
* اپٹیچیوڈ میں "ہولڈ" اور ف"اربڈن" نامی فلیگ موجود ہیں
* پورٹیج میں پیکج ماسک کنفگریشن فائل کی سہولت موجود ہے۔

### ترتیب سے پیکج ہٹانا

کچھ پیکج مینیجر زیادہ بہتر طریقے سے پیکج ہٹاتے ہیں جس میں وہ تمام پیکج بھی ختم ہو جاتے ہیں جو مذکورہ پیکج کو استعمال کر رہے ہوتے ہیں 

### احکامات کا موازنہ

ویسے تو ہر پیکج مینیجر میں احکامات دینے کا اپنا طریقہ ہوتا ہے لیکن عام طور پر یہ ان احکامات کو ایک نظام سے دوسرے نظام میں ترجمہ کیا جا سکتا ہے۔کچھ پیکج مینیجر ایک قسم کے فنکشن استعمال کر رہے ہوتے ہیں۔ کچھ مثالیں یہ ہیں

| Action | zypper | pacman | apt | dnf (yum) | portage |
| --- | --- | --- | --- | --- | --- |
| install package | `zypper in PKG` | `pacman -S PACKAGE` | `apt install PACKAGE` | `yum install PACKAGE` | `emerge PACKAGE` |
| remove package | `zypper rm -RU PKG` | `pacman -R PACKAGE` | `apt remove PACKAGE` | `dnf remove --nodeps PACKAGE` | `emerge -C PACKAGE` or `emerge --unmerge PACKAGE` |
| remove package+orphans | `zypper rm -u --force-resolution PKG` | `pacman -Rs PACKAGE` | `apt autoremove PACKAGE` | `dnf remove PACKAGE` | `emerge -c PACKAGE` or `emerge --depclean PACKAGE` |
| update software database | `zypper ref` | `pacman -Sy` | `apt update` | `yum check-update` | `emerge --sync` |
| show updatable packages | `zypper lu` | `pacman -Qu` | `apt list --upgradable` | `yum check-update` | `emerge -avtuDN --with-bdeps<nowiki>=</nowiki>y @world` or `emerge --update --pretend @world` |
| delete orphans+config | `zypper rm -u` | `pacman -Rsn $(pacman -Qdtq)` | `apt autoremove` | `dnf erase PKG` | `emerge --depclean` |
| show orphans | `zypper pa --orphaned --unneeded` | `pacman -Qdt` | `package-cleanup --quiet --leaves --exclude-bin` | `emerge -caD` or `emerge --depclean --pretend` |
| update all | `zypper up` | `pacman -Syu` | `apt upgrade` | `yum update` | `emerge --update --deep --with-bdeps<nowiki>=</nowiki>y @world` |

پھیلا
-----

پیکیج مینیجر کافی عرصے سے استعمال ہو رہے ہیں جیسا کہ ڈی پی کے جی 1994 سے موجود ہے

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

* apt-get, a CLI utility installing MediaWikiapt-get, a CLI utility installing MediaWiki
* aptitude also features a TUIaptitude also features a TUI
* Synaptic, a GUI for many Linux package managersSynaptic, a GUI for many Linux package managers
* Apper, a Qt GUI for PackageKitApper, a Qt GUI for PackageKit
* GNOME Software, a GTK+ GUI for PackageKitGNOME Software, a GTK+ GUI for PackageKit
* Octopi, a Qt GUI for Pacman package managerOctopi, a Qt GUI for Pacman package manager
* Pamac, a GTK+ GUI for Pacman package managerPamac, a GTK+ GUI for Pacman package manager

تنصیب کار سے موازنہ
-------------------

یہ سوچا جا سکتا ہے کہ جو سہولیات پیکج دے رہا ہے وہی سہولیات عام طور سافٹ کے اپنے تنصیب کار (Installer) بھی فراہم کرتے ہیں۔ تاہم دونوں میں فرق واضح ہے

خود کار تیاری کی سہولت کا موازنہ
--------------------------------

زیادہ تر سافٹ وئیر ترتیبات منتظم نظام سافٹ وئیر کی تیاری اور ان کی تنصیب کو علاحدہ علاحدہ کرتے ہیں جبکہ اس کے مقابلے میں خود کار تیاری کے لیے سورس کی تالیف (Compilation) کے بعد اس کی ثنائی فائل (Binary File) بنا لی جاتی ہے جو پیکج مینیجر خود ہی دوسرے کمپیوٹر سے ثنائی فائل کو ڈاؤن لوڈ کرکے تنصیب کردیتا ہے۔

مشہور پیکج مینیجر اور ان کے فارمیٹ
----------------------------------

### یونیورسل پیکج مینیجر

اسے ثنائی مخزن منتظم بھی کہا جاتا ہے۔ اسے تیار کرنے کا مقصد ثنائی فائلز کو ڈاؤن لوڈ کرکے محفوظ کرنا تھا۔اس قسم کے پیکج مینیجر کافی ہمہ جہت قسم کے ہوتے ہیں اور ان میں کوشش کی جاتی ہے کہ زیادہ سے زیادہ اور متنوع قسم کی سہولیات دی جائیں۔ انھیں ڈیو آپس ٹول چین میں بھی استعمال کیا جاتا ہے۔

جے فراگ کا آرٹی فیکٹری اور انیڈوکا پروگٹ معروف یونیورسل پیکج مینیجر ہیں

### پیکج کے فارمیٹ

ہر قسم کے پیکج مینیجر کا انحصار اس کے فائل فارمیٹ اور معلومات محفوظ کرنے کے طریقہ کار پر ہوتا ہے۔اس میں کئی قسم کی فائلز شامل ہوتی ہیں جس میں سافٹ وئیر کے متعلق معلومات درج ہوتی ہیں۔ ایک ہی کمپیوٹر پر کئی پیکج مینیجر استعمال کیے جا سکتے ہیں اور یہ بھی ممکن ہے کہ ایک ہی پیکج مینیجر دوسرے کئی قسم کے پیکج مینیجرز کے پس منظر کے طور پر کام کررہا ہو۔

مثال کے طور یم آر پی ایم پر انحصار کرتا ہے۔ یم اس کی فراہم کردہ سہولیات کے علاوہ اپنی سہولیات بھی دیتا ہے جس کی وجہ سے یم کی افادیت بڑھ جاتی ہے۔اسی طرح کی ایک اور مثال سائنیپٹک پیکج مینیجر ہے جو ایڈوانس پیکجنگ ٹول (اے پی ٹی) کو استعمال کرتا ہے جبکہ اے پی ٹی خود ڈی پی کے جی کی سہولیات سے فائدہ اٹھاتا ہے۔

ایلین نام کا پیکج مینیجر لینکس کے لیے موجود مختلف پیکج مینیجرز کے درمیان رابطہ کار کے فرائض سر انجام دیتا ہے۔ اس مقصد کے لیے ایلین لینکس سٹینڈرڈ بیس بناتا ہے۔ اس کی مدد سے آر پی ایم، ڈیب، سٹیمپڈ، سولیرس اور سلیک وئیر آپس میں معلومات کا تبادلہ کرسکتے ہیں۔

گوگل کا تیار کردہ گوگل پلے اینڈرائڈ کے پیکج مینیجر کے طور پر استعمال ہورہا ہے۔اسی ونڈوز سٹور، اے پی پی ایکس اور ایکس اے پی بھی موجود ہیں

### مفت و آزاد مصدر

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

اثر
---

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

یہ بھی دیکھیں
-------------

* ایپ سٹریم
* Flatpak
* Installation (computer programs)
* List of software package management systems
* Package format
* pkgutil
* Windows Installer

حوالہ جات
---------

1. ↑  "آرکائیو کاپی"۔ 17 اکتوبر 2017 میں اصل سے آرکائیو شدہ۔ اخذ شدہ بتاریخ 09 ستمبر 2018  الوسيط `|url-status=` تم تجاهله (معاونت)
2. ↑  "Software Distribution"۔ Dell KACE۔ 03 اکتوبر 2015 میں اصل سے آرکائیو شدہ۔ اخذ شدہ بتاریخ 11 جولا‎ئی 2012
3. ↑  Ludovic Courtès, Functional Package Management with Guix, June 2013, Madrid, European Lisp Symposium 2013 ;
4. ↑  Tucker Chris (2007-03-15)۔ "Optimal Package Install/Uninstall Manager" (PDF)۔ UC San Diego: 1۔ اخذ شدہ بتاریخ 14 ستمبر 2011
5. ↑  "Linux repository classification schemes"۔ braintickle.blogspot.com۔ اخذ شدہ بتاریخ 01 مارچ 2008
6. ↑  "CentOS yum pinning rpms"۔ centos.org۔ 02 نومبر 2007 میں اصل سے آرکائیو شدہ۔ اخذ شدہ بتاریخ 01 مارچ 2008
7. ↑  "pacman(8) Manual Page"۔ archlinux.org۔ اخذ شدہ بتاریخ 01 مارچ 2008
8. ↑
9. ↑  "dpkg version 0.93.15 source code"۔ 02 اپریل 2015 میں اصل سے آرکائیو شدہ۔ اخذ شدہ بتاریخ 09 ستمبر 2018  الوسيط `|url-status=` تم تجاهله (معاونت)
10. ↑  "How package management changed everything"۔ ianmurdock.com۔ 23 فروری 2009 میں اصل سے آرکائیو شدہ۔ اخذ شدہ بتاریخ 01 مارچ 2008