**مخزن سافٹ وئیر** سے مراد ایک آن لائن سہولت  ہے جہاں مختلف سافٹ وئیر موجود ہوتے ہیں اور صارفین یہاں سے سافٹ وئیر ڈاؤن لوڈ کرسکتے ہیں

جائزہ
-----

انٹرنیٹ کے پھیلاؤ کی وجہ سے صارفین کے لیے یہ نہایت آسان ہے کہ وہ اپنے استعمال کے سافٹ وئیر کسی ڈسک (سی ڈی یا ڈی وی ڈی) وغیرہ پر فروخت کنندہ سے خریدنے کی بجائے انٹرنیٹ سے منسلک کسی سرور سے ڈاؤن لوڈ کر لیں۔ اسی طرح بعض اوقات ایسے سافٹ وئیر جن کا حجم بہت زیادہ ہوتا ہے اس کا محض ضروری حصہ ہی تنصیب کار(Setup) میں شامل کیا جاتا ہے۔ جب ایسے سافٹ وئیر کو کمپیوٹر پر تنصیب کیا جاتا ہے تو سافٹ وئیر دیگر حصوں کو خود ہی انٹرنیٹ سے ڈاؤن لوڈ کرلیتا ہے۔ دونوں کام یعنی انٹرنیٹ سے ڈاؤن لوڈ کرکے تنصیب کرنا اور اضافی حصوں کو ڈاؤن لوڈ کرنا عام طور پر سافٹ وئیر پیکج  مینیجر کی مدد سے ممکن بنایا جاتا ہے۔وہ سرورز جہاں اس قسم کی چیزوں کو رکھا جاتا ہے مخزن سافٹ وئیر (Software Repository) کہتے ہیں۔ گذشتہ چند سالوں سے ذہین آلات اور موبائل فون کی تعداد میں اضافے سے مخزن سافٹ وئیر کی اہمیت میں بہت اضافہ ہوا ہے۔ گوگل پلے (Google Play)، ایپ سٹور، ونڈوز سٹور، گٹ ہب وغیرہ معروف مخزن ہیں۔

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

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

پیکج مینیجر اور پیکج کی تیاری
-----------------------------

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

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

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

مشہور مخزن
----------

نیچے موجود جدول میں معروف مخازن کی فہرست دی گئی ہے۔

| Language / purpose | Package Development Process | Repository | How to install | Collaborative development platform | Autochecks |
| --- | --- | --- | --- | --- | --- |
| Haskell | Common Architecture for Building Applications and Libraries (CABAL) | Hackage |  |
| Java | Maven |  |
| Julia |  |
| Common Lisp | Quicklisp |  |
| .NET | NuGet | NuGet |  |
| Node.js | NPM |  |
| Perl | CPAN | PPM  |
| PHP | PEAR, Composer | PECL, Packagist |
| Python | Setuptools | PyPI | pip, EasyInstall, PyPM |
| R | R CMD check process | CRANآرکائیو شدہ (Date missing) بذریعہ cran.r-project.org (Error: unknown archive URL) | install.packages | R-Forge | Roughly weekly on 12 platforms or combinations of different versions of R (devel, prerel, patched, release) with up to 7 different operating systems (different versions of Linux, Windows, and Mac). |
| Ruby | RubyGems | Ruby Application Archive | RubyForge |
| TeX, LaTeX | CTAN |

یہ جدول سٹیک اوور فلو سے لیا گیا ہے۔

بعض زبانیں جیسا کہ سی، سی++ اور فورٹران  کی مرکزی مخازن موجود نہیں ہیں۔ چند محدود مخازن درج ذیل ہیں

* نیٹ لیب: یہ چند آزاد مخازن میں سے ایک ہے جس میں سی اور فورٹران کے ریاضیاتی فنکشن موجود ہیں
* بوسٹ:

منتظم مخزن
----------

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

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

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

1. ↑  Friedrich Leisch۔ "Creating R Packages: A Tutorial" (PDF)
2. ↑  Spencer B. Graves، Sundar Dorai-Raj۔ "Creating R Packages, Using CRAN, R-Forge, And Local R Archive Networks And Subversion (SVN) Repositories" (PDF)
3. ↑  "List of Top Repositories by Programming Language"۔ Stack Overflow۔ 26 دسمبر 2018 میں اصل سے آرکائیو شدہ۔ اخذ شدہ بتاریخ 14 اپریل 2010  الوسيط `|url-status=` تم تجاهله (معاونت)