Package Manager چیست؟ تا چند سال پیش برنامه نویسی به گونهای بود که شما با یک زبان شروع به برنامه نویسی میکردید و اگر لازم بود از کتابخانههایی استفاده کنید آن را تهیه میکردید و به پروژه خود اضافه میکردید و به کار خود ادامه می دادید. اما رفتهرفته استفاده از کتابخانههای خارج از پروژه بیشتر رایج شد و به همین شکل سورس ها و کتابخانههای رایگان در اینترنت بیشتر شد. به همین دلیل در اکثر زبانهای برنامه نویسی این نیاز به وجود آمد که ابزاری نوشته شود که کتابخانهها را مدیریت و نصب کند و برنامه نویس دیگر درگیر دانلود و نصب کتابخانهها نباشد.
مشکلاتی که هنگام دانلود یک کتابخانه به وجود میآمد وابستگیهای آن کتابخانهها بود. یعنی در نظر بگیرید که میخواهید یک کتابخانه دانلود و نصب کنید ولی متأسفانه همین کتابخانه مورد نظر خود وابسته به کتابخانه دیگری بود و آن کتابخانه هم به یک یا چند کتابخانه دیگر وابسته بود. در این حالت کار شما درآمده بود. شما باید اول وابستگیهای اولیه را نصب میکردید و بعد از آن کتابخانه مورد نظر را نصب می کردید. اگر درگیر این کار شده باشید میبینید که انجام این کار بسیار سخت و پیچیده میشد و ممکن بود که در این وابستگیها سردرگم باشید. به همین صورت ممکن بود برای استفاده از یک کتابخانه وقت خیلی زیادی را از دست میدادید. البته شما اگر با سیستم عامل لینوکس هم کار کرده باشید این مشکل در نصب بسته های نرم افزاری برای این سیستم عامل نیز وجود دارد.
مدیر پکیج ها (package manager)
برای حل مشکلاتی که گفته شد برای زبانهای برنامه نویسی و تکنولوژی های توسعه نرمافزار ابزارهایی به نام package manager ارائه شد. package managerها با بسته ها یا مجموعه های نرم افزاری درگیر است و اعمالی را مانند نصب و بروزرسانی و یا حذف می کند. با استفاده از package manager میتوان تصمیم گرفت که کدام ورژن از هر بسته نصب باشد و هر بار که لازم بود پکیج ها آپدیت شوند.
همچنین دیگر نیازی نیست که درگیر وابستگیها شوید و خود package manager قبل از نصب کتابخانه مورد نظر وابستگیها را پیدا کرده و به پروژه اضافه می کند. امروزه بسته به نوع زبان و تکنولوژی مورد استفاده package manager های مختلفی وجود دارد که هرکدام روش کار مخصوص به خود را دارند. برای مثال برای node js میتوان npm و yarn را نام برد و یا برای زبان برنامه نویسی جاوا میتوان gradle, maven را نام برد. در تصویر زیر مجموعه ای مدیر پکیج ها را آورده ایم.
استفاده از package manager در جابه جایی پروژه ها
یکی از کاربرد های package manager این است که شما به راحتی میتوانید پروژه خود را از یک ماشین به ماشین دیگر انتقال داده و در ماشین مقصد به کار خود ادامه دهید بدون اینکه نگران خراب شدن لینک کتابخانهها و پکیج ها باشید. زیرا که در ماشین مقصد به package manager دستور میدهید که بسته ها را دوباره آماده و نصب کند.
برای مثال اگر شما یک پروژه را از سایت گیت هاب دریافت کنید و پروژه مورد نظر از پکیج استفاده کرده باشد متوجه خواهید شد که برنامه نویس فقط فایلهای پروژه خود را بر روی گیت هاب گذاشته است ولی خبری از سورس کتابخانههای استفاده شده نیست. خب برای حل این مشکل شما باید به package manager مورد نظر دستور دهید که بسته ها را نصب کرده و بعد از آن قادر خواهید بود تا پروژه را اجرا کنید.با وب سایت tosinso همراه باشید.
سلام به طور مثال شما یه برنامه با nodeJs نوشتید(البته میشه هر زبانی مثل جاوا و یا سی شارپ و php رو هم مثال زد) که توی اون از پکیج های آماده استفاده کردید. حالا می خواهید فایل های پروژه رو جابه جا کنید و به روی کامپیوتر جدیدی انتقال بدید. اگر از package manager استفاده نکنید. مجبور هستید که همه پکیج های آماده رو هم باهاش انتقال بدید و در مقصد مطمئن بشید که آدرس دهی درسته. همین کار در صورت سنتی انتقال رو سخت می کنه ولی استفاده از [package manager باعث میشه که شما کاری به پکیج ها نداشته باشید و فایل های سورس خودتون رو فقط انتقال بدید و زمان بیلد کردن پروژه package manager فایل ها رو دانلود می کنه و در محل مناسب قرار میده که برای پروژه شما قابل استفاده باشه.
سلام، مطالب خوبی بود.
منظورتون رو از "استفاده از Package Manager در جا به جایی پروژه ها" متوجه نشدم و میشه بیشتر توضیح بدین ؟
خیلی ممنون