محدودیت دسترسی به npm میتواند فرایند توسعه، دریافت وابستگیها یا استفاده از ابزارهای مرتبط را مختل کند. در این راهنما تنظیم شکن، دامنههای لازم و روش آزمایش تحریم شکن برای npm را با نمونه عملی توضیح میدهیم.
اگر هنگام نصب پکیجهای JavaScript، اجرای دستور npm install یا دریافت وابستگیهای یک پروژه با خطای اتصال مواجه میشوید، ممکن است مشکل از دسترسی شبکه، تنظیمات DNS، پراکسی یا وضعیت رجیستری npm باشد. این مشکل میتواند روند توسعه وب را مختل کند؛ بهخصوص زمانی که برای راهاندازی یک پروژه جدید یا اجرای برنامهای که قبلاً نوشتهاید، به دریافت چندین پکیج وابسته هستید.
تحریم شکن برای npm یکی از راهکارهایی است که میتوانید برای بررسی و رفع مشکلات احتمالی دسترسی مبتنی بر DNS امتحان کنید. سرویس شکن با استفاده از DNS تلاش میکند دسترسی به برخی دامنههای محدودشده را بهبود دهد؛ بااینحال، نتیجه به نوع محدودیت و وضعیت سرویس مقصد بستگی دارد و برای همه خطاهای npm راهحل قطعی نیست.

npm چیست و چرا دسترسی به آن برای برنامهنویسان اهمیت دارد؟
npm یکی از ابزارهای اصلی در اکوسیستم JavaScript است که برای مدیریت و نصب پکیجها و وابستگیهای پروژه استفاده میشود. این ابزار در بسیاری از پروژههای فرانتاند و بکاند کاربرد دارد و در کنار Node.js در محیط توسعه برنامههای مختلف به کار میرود.
برای مثال، اگر با React، Vue، Angular یا ابزارهایی مانند Vite کار میکنید، احتمال دارد برای راهاندازی پروژه، نصب کتابخانهها یا اجرای فرایند ساخت برنامه به npm نیاز داشته باشید.
npm از دو بخش مهم تشکیل شده است: ابزار خط فرمان که روی سیستم اجرا میشود و رجیستریای که اطلاعات و فایلهای پکیجها را در اختیار کاربران قرار میدهد. رجیستری عمومی پیشفرض npm از طریق دامنه registry.npmjs.org در دسترس است.
وقتی دستور نصب یک پکیج را اجرا میکنید، npm بر اساس تنظیمات پروژه و رجیستری انتخابشده، درخواستهای لازم را ارسال میکند تا اطلاعات و فایلهای موردنیاز دریافت شوند. در برخی پروژهها نیز وابستگیها از منابع دیگری مانند Git، رجیستری خصوصی یا آدرسهای خارجی دریافت میشوند.
به همین دلیل، اگر دسترسی به یکی از دامنههای موردنیاز مختل شود، ممکن است نصب یک پکیج ساده یا راهاندازی کل پروژه با خطا مواجه شود. در چنین شرایطی، ابتدا باید مشخص کنید مشکل مربوط به کدام بخش است؛ زیرا هر خطای npm الزاماً به معنی تحریم یا اختلال DNS نیست.
چرا هنگام اجرای npm install با خطای اتصال مواجه میشویم؟
خطاهای مربوط به نصب پکیج میتوانند دلایل مختلفی داشته باشند. گاهی سیستم نمیتواند دامنه رجیستری را به آدرس IP تبدیل کند و گاهی اتصال برقرار میشود، اما سرور مقصد پاسخ مناسبی نمیدهد یا دریافت فایل به پایان نمیرسد.
مهمترین دلایل عبارتاند از:
-
محدودیت دسترسی به دامنه: ممکن است دسترسی به یکی از دامنههای موردنیاز به دلیل محدودیت جغرافیایی یا سیاستهای شبکه با مشکل مواجه شده باشد.
-
اختلال DNS: سیستم نمیتواند نام دامنه رجیستری یا یکی از منابع موردنیاز را بهدرستی شناسایی کند.
-
مشکل اینترنت یا شبکه: اتصال ناپایدار، قطعی اینترنت یا محدودیتهای شبکه میتواند مانع دریافت پکیج شود.
-
تنظیمات پراکسی: وجود پراکسی نامعتبر یا تنظیمات قدیمی میتواند درخواستهای npm را به مسیر اشتباه هدایت کند.
-
رجیستری اشتباه: ممکن است npm بهجای رجیستری عمومی، از یک رجیستری خصوصی یا آدرس نامعتبر استفاده کند.
-
خطای احراز هویت: برخی پکیجها خصوصی هستند و بدون دسترسی یا توکن معتبر نصب نمیشوند.
-
مشکل نسخه یا وابستگیها: ناسازگاری نسخه Node.js، npm یا وابستگیهای پروژه نیز میتواند فرایند نصب را متوقف کند.
بنابراین، پیش از تغییر تنظیمات سیستم، بهتر است پیام خطا را بررسی کنید. اگر خطا به شناسایی نام دامنه یا دسترسی به رجیستری مربوط باشد، بررسی DNS منطقی است. اما اگر پیام از احراز هویت، ناسازگاری نسخه یا نبود پکیج خبر میدهد، باید همان بخش را بررسی کنید.
تحریم شکن برای npm چگونه به رفع مشکل دسترسی کمک میکند؟
DNS وظیفه دارد نام دامنهها را به اطلاعات شبکه موردنیاز برای برقراری ارتباط تبدیل کند. وقتی آدرس یک سرویس در مرورگر یا ابزار خط فرمان وارد میشود، سیستم برای پیدا کردن مقصد به فرایند ترجمه نام دامنه نیاز دارد.
اگر مشکل دسترسی به npm ناشی از اختلال یا محدودیت در سطح DNS باشد، تغییر DNS به سرویسی مانند شکن ممکن است به برطرف شدن آن کمک کند. این موضوع میتواند در دسترسی به رجیستری عمومی npm یا بعضی از دامنههای موردنیاز پروژه مؤثر باشد؛ البته به شرطی که دامنه موردنظر تحت پوشش سرویس باشد و محدودیت از نوعی نباشد که به روش دیگری نیاز داشته باشد.
برای استفاده از شکن میتوانید DNS آن را روی سیستمعامل خود تنظیم کنید یا از روشهای اتصال پشتیبانیشده استفاده کنید. انتخاب روش مناسب به سیستم شما، نحوه اتصال به اینترنت و نیازهای محیط توسعه بستگی دارد.
یک نکته مهم این است که DNS شکن جایگزین کامل VPN یا پراکسی نیست. این سرویس بهخودیخود تمام ترافیک اینترنت را رمزگذاری نمیکند و IP عمومی شما را تغییر نمیدهد. اگر دسترسی به یک مقصد به تغییر IP، احراز هویت یا عبور از محدودیتهای دیگری نیاز داشته باشد، تغییر DNS بهتنهایی کافی نخواهد بود.
آموزش استفاده از DNS شکن برای npm
برای شروع، ابتدا باید مطمئن شوید که مشکل واقعاً به دسترسی شبکه مربوط است. سپس میتوانید DNS شکن را روی سیستم خود تنظیم کنید و اتصال به رجیستری را دوباره آزمایش کنید.
مرحله اول: بررسی رجیستری تنظیمشده در npm
ترمینال یا خط فرمان را باز کنید و دستور زیر را اجرا کنید:
npm config get registry
در حالت معمول، رجیستری عمومی npm باید به شکل زیر باشد:
https://registry.npmjs.org/
اگر آدرس دیگری مشاهده کردید، بررسی کنید که آیا پروژه شما به رجیستری خصوصی یا منبع مشخصی وابسته است یا خیر. تغییر رجیستری بدون توجه به نیاز پروژه ممکن است باعث شود پکیجهای خصوصی دیگر قابل دریافت نباشند.
اگر قصد دارید رجیستری عمومی را برای نصب پکیجهای عمومی استفاده کنید و تنظیم فعلی اشتباه است، میتوانید آدرس آن را با دستور زیر تنظیم کنید:
npm config set registry https://registry.npmjs.org/
این دستور فقط تنظیم رجیستری npm را تغییر میدهد و بهتنهایی مشکل DNS یا محدودیت شبکه را برطرف نمیکند.
مرحله دوم: تنظیم DNS شکن
برای استفاده از DNS شکن، ابتدا روش مناسب دستگاه خود را انتخاب کنید. اگر از نسخه رایگان استفاده میکنید، آدرسهای IPv4 سرویس به این صورت هستند:
-
DNS اول:
178.22.122.100 -
DNS دوم:
185.51.200.2
در سرویس حرفهای نیز آدرسها عبارتاند از:
-
DNS اول:
178.22.122.101 -
DNS دوم:
185.51.200.1
برای استفاده از DNS حرفهای، وضعیت IP ثبتشده و تنظیمات مربوط به حساب خود را در پنل شکن بررسی کنید.
توجه داشته باشید که این آدرسها مربوط به تنظیم DNS هستند؛ آنها را نباید بهعنوان آدرس رجیستری npm یا پراکسی در تنظیمات npm وارد کنید.
برای مشاهده راهنمای متناسب با دستگاه خود، از یکی از صفحات زیر استفاده کنید:
در این صفحه، مراحل کامل تنظیم DNS هر سیستمعامل را تکرار نمیکنیم تا راهنمای npm روی کاربرد تخصصی خودش متمرکز بماند.
مرحله سوم: بررسی دسترسی به رجیستری npm
پس از اعمال تنظیمات DNS، ترمینال جدیدی باز کنید و دستور زیر را اجرا کنید:
npm ping
این دستور برای بررسی ارتباط npm با رجیستری تنظیمشده کاربرد دارد. اگر پاسخ موفق دریافت کردید، ارتباط پایه با رجیستری برقرار است؛ اما این نتیجه بهتنهایی تضمین نمیکند که تمام پکیجها، منابع خارجی و وابستگیهای پروژه نیز بدون مشکل دریافت شوند.
برای بررسی دقیقتر میتوانید دستور زیر را نیز اجرا کنید:
npm view npm version
اگر اطلاعات نسخه نمایش داده شود، npm توانسته است اطلاعات مربوط به پکیج را از رجیستری دریافت کند.
اگر همچنان خطا دارید، متن کامل خطا را نگه دارید و مراحل عیبیابی بخش بعد را انجام دهید. تغییر DNS تنها یکی از مراحل بررسی است و نتیجه آزمایش مشخص میکند که آیا مشکل احتمالاً برطرف شده یا باید تنظیمات دیگری را بررسی کنید.
چگونه خطاهای رایج npm را عیبیابی کنیم؟
هنگام اجرای دستورهایی مانند npm install، npm ci یا npm update ممکن است پیامهای متفاوتی نمایش داده شوند. شناخت نوع خطا کمک میکند از تغییرات غیرضروری در تنظیمات سیستم جلوگیری کنید.
| خطا یا وضعیت npm | علت احتمالی | اقدام پیشنهادی |
|---|---|---|
ENOTFOUND |
نام دامنه شناسایی نشده است یا پاسخ DNS دریافت نمیشود. | نام دامنه، اتصال اینترنت و تنظیمات DNS را بررسی کنید. |
EAI_AGAIN |
خطای موقت در شناسایی نام دامنه رخ داده است. | اتصال شبکه را آزمایش کنید و پس از رفع اختلال، دستور را دوباره اجرا کنید. |
ECONNRESET |
ارتباط شبکه در میانه درخواست قطع شده است. | وضعیت شبکه، پراکسی و پایداری اتصال را بررسی کنید. |
ETIMEDOUT |
درخواست در زمان تعیینشده پاسخی دریافت نکرده است. | دسترسی به رجیستری npm، تنظیمات پراکسی و وضعیت شبکه را بررسی کنید. |
ECONNREFUSED |
اتصال به مقصد موردنظر از سوی مقصد یا یک واسطه رد شده است. | آدرس مقصد، پورت اتصال، پراکسی و تنظیمات شبکه را بررسی کنید. |
E401 / E403 |
احراز هویت ناموفق است یا مجوز دسترسی کافی ندارید. | حساب کاربری، توکن دسترسی و مجوزهای مربوط به پکیج را بررسی کنید. |
E404 |
پکیج یا نسخه موردنظر در منبع انتخابشده پیدا نشده است. | نام پکیج، شماره نسخه و آدرس رجیستری انتخابشده را بررسی کنید. |
ERESOLVE |
بین نسخههای وابستگیهای پروژه ناسازگاری وجود دارد. | نسخه کتابخانهها و سازگاری وابستگیها با یکدیگر را بررسی کنید. |
CERT_HAS_EXPIRED |
گواهی امنیتی منقضی شده است یا اعتبارسنجی گواهی با مشکل روبهرو شده است. | تاریخ و ساعت سیستم، گواهیهای معتبر و تنظیمات ارتباط امن را بررسی کنید. |
این پیامها همیشه یک علت واحد ندارند. برای مثال، خطای ETIMEDOUT ممکن است از اختلال شبکه، محدودیت دسترسی یا پاسخندادن سرور ناشی شود. بنابراین، بهتر است نتیجه آزمایش اتصال و متن کامل خطا را در کنار هم بررسی کنید.
بررسی خطای ENOTFOUND
اگر با خطای ENOTFOUND مواجه شدهاید، ابتدا بررسی کنید که آدرس رجیستری درست باشد. سپس میتوانید از دستور زیر برای آزمایش پاسخ DNS استفاده کنید:
nslookup registry.npmjs.org
در لینوکس و مک نیز در صورت نصب بودن ابزار مربوط میتوانید از دستور dig استفاده کنید:
dig registry.npmjs.org
اگر نام دامنه بهدرستی شناسایی نمیشود، تنظیمات DNS و اتصال اینترنت را بررسی کنید. در این شرایط، استفاده از DNS شکن ممکن است کمککننده باشد؛ اما اگر دامنه بهدرستی شناسایی میشود و مشکل در مرحله برقراری ارتباط رخ میدهد، باید علت دیگری را جستوجو کنید.
بررسی خطای ETIMEDOUT
این خطا نشان میدهد درخواست در زمان تعیینشده پاسخ نگرفته است. برای تشخیص علت، ابتدا وضعیت اینترنت و اتصال به رجیستری را بررسی کنید. اگر از پراکسی استفاده میکنید، تنظیمات آن را نیز بررسی کنید.
میتوانید اطلاعات تنظیمات رجیستری و پراکسی npm را با دستورهای زیر مشاهده کنید:
npm config get registry
npm config get proxy
npm config get https-proxy
اگر از پراکسی استفاده نمیکنید، خروجی تنظیمات را بررسی کنید تا مقدار قدیمی یا ناخواستهای باقی نمانده باشد. اگر پراکسی بخشی از تنظیمات ضروری محیط شماست، آن را بدون بررسی حذف نکنید.
بررسی خطای E401 و E403
خطاهای مربوط به مجوز دسترسی معمولاً با تغییر DNS حل نمیشوند. ممکن است پکیج خصوصی باشد، توکن دسترسی اعتبار نداشته باشد یا حساب شما مجوز دریافت آن را نداشته باشد.
در این شرایط، فایل .npmrc، تنظیمات احراز هویت و مجوز دسترسی به پکیج را بررسی کنید. هنگام ارسال خروجی دستورات یا فایل تنظیمات برای دریافت کمک، توکنها و اطلاعات محرمانه را حذف کنید.
اگر npm install همچنان کار نمیکند چه کنیم؟
پس از تنظیم DNS شکن، اگر نصب پکیجها همچنان با خطا مواجه است، بهتر است مراحل زیر را بهترتیب بررسی کنید:
-
رجیستری را بررسی کنید. مطمئن شوید آدرس رجیستری با نیاز پروژه مطابقت دارد.
-
اتصال پایه را آزمایش کنید. دستور
npm pingرا اجرا کنید و پیام دریافتی را بخوانید. -
نام دامنه را بررسی کنید. با ابزارهایی مانند
nslookupمشخص کنید دامنه رجیستری قابل شناسایی است یا خیر. -
تنظیمات پراکسی را بررسی کنید. پراکسی قدیمی یا نامعتبر میتواند مانع ارتباط صحیح شود.
-
نسخهها و وابستگیها را بررسی کنید. مطمئن شوید نسخه Node.js و npm با پروژه سازگار است.
-
منبع پکیج را بررسی کنید. ممکن است وابستگی موردنظر از Git، یک رجیستری خصوصی یا دامنهای غیر از رجیستری عمومی دریافت شود.
-
دوباره آزمایش کنید. پس از هر تغییر، همان دستور قبلی را اجرا کنید تا مشخص شود کدام اقدام روی نتیجه اثر گذاشته است.
برای عیبیابی دقیقتر، بهتر است هر بار فقط یک تنظیم را تغییر دهید. با این کار میتوانید علت احتمالی مشکل را راحتتر تشخیص دهید و از تغییرات غیرضروری در محیط توسعه جلوگیری کنید.
آیا پاک کردن کش npm ضروری است؟
خیر. پاک کردن کش اولین اقدام برای رفع خطاهای اتصال نیست. اگر مشکل از DNS، شبکه یا محدودیت دسترسی باشد، پاک کردن کش بهتنهایی آن را برطرف نمیکند.
برای بررسی وضعیت کش میتوانید از دستور زیر استفاده کنید:
npm cache verify
این دستور وضعیت کش را بررسی میکند. فقط زمانی سراغ اقدامات بیشتر برای تعمیر یا پاکسازی کش بروید که شواهدی از مشکل کش وجود داشته باشد. همچنین اگر پروژه فایل package-lock.json دارد، از حذف بیدلیل آن خودداری کنید؛ زیرا این فایل در تثبیت نسخه وابستگیها نقش دارد.
تنظیم شکن برای npm در ویندوز، مک و لینوکس
npm روی سیستمعاملهای مختلف قابل استفاده است؛ بنابراین، روش تنظیم DNS به سیستمعاملی بستگی دارد که محیط توسعه شما روی آن اجرا میشود.
استفاده از npm در ویندوز
در ویندوز، میتوانید DNS را از تنظیمات شبکه تغییر دهید یا از روشهای اتصال پشتیبانیشده شکن استفاده کنید. پس از اعمال تنظیمات، ترمینال جدیدی باز کنید و با اجرای npm ping وضعیت اتصال را بررسی کنید.
اگر از PowerShell، Windows Terminal یا ترمینال داخلی Visual Studio Code استفاده میکنید، دقت داشته باشید که همه این محیطها از تنظیمات شبکه سیستم استفاده میکنند، مگر آنکه ابزار یا تنظیمات خاصی مسیر ارتباط را تغییر داده باشد.
برای مراحل دقیق نصب و تنظیم، راهنمای تحریم شکن برای ویندوز را ببینید.
استفاده از npm در مک
در macOS میتوانید تنظیمات DNS را از بخش تنظیمات شبکه انجام دهید. پس از تغییر تنظیمات، اتصال به رجیستری را از ترمینال آزمایش کنید. اگر در مرورگر دسترسی برقرار است اما npm خطا میدهد، تنظیمات رجیستری و پراکسی را نیز بررسی کنید؛ زیرا این دو بخش مستقل از تنظیم DNS هستند.
راهنمای کامل در صفحه تحریم شکن برای مک قرار دارد.
استفاده از npm در لینوکس
در لینوکس، روش تنظیم DNS به توزیع و ابزار مدیریت شبکه بستگی دارد. برخی سیستمها از NetworkManager استفاده میکنند و برخی تنظیمات DNS را از طریق سرویسهای دیگر مدیریت میکنند.
بهتر است قبل از ویرایش فایلهای سیستمی، مشخص کنید مدیریت DNS در سیستم شما چگونه انجام میشود. سپس اتصال به رجیستری را با ابزارهای شبکه و دستور npm ping بررسی کنید.
برای مشاهده روشهای متناسب با محیط خود، به صفحه تحریم شکن برای لینوکس مراجعه کنید.
استفاده از npm روی سرور یا محیط توسعه راه دور
اگر پروژه روی سرور لینوکسی، ماشین مجازی یا محیط توسعه راه دور اجرا میشود، تنظیم DNS کامپیوتر شخصی شما لزوماً روی آن محیط اثر ندارد. برای مثال، ممکن است npm روی لپتاپ بهدرستی کار کند، اما هنگام اجرای همان دستور روی سرور با خطای اتصال مواجه شوید.
در چنین شرایطی، باید DNS و تنظیمات شبکه همان محیطی را بررسی کنید که دستور npm در آن اجرا میشود. اگر از کانتینر یا محیطهای مجزا استفاده میکنید، تنظیمات شبکه و DNS آنها نیز ممکن است با سیستم میزبان متفاوت باشد.
برای تنظیمات مرتبط با سرور، میتوانید از راهنمای تحریم شکن برای ویندوز سرور استفاده کنید؛ البته این راهنما مخصوص سرورهای ویندوزی است و برای سرور لینوکسی باید تنظیمات متناسب با همان سیستمعامل را بررسی کنید.
آیا DNS شکن برای همه پکیجهای npm کار میکند؟
خیر. موفقیت در دسترسی به رجیستری عمومی npm به معنی دسترسی قطعی به تمام وابستگیهای یک پروژه نیست.
ممکن است اطلاعات یک پکیج از registry.npmjs.org دریافت شود، اما فایل دیگری از یک دامنه خارجی، مخزن Git یا رجیستری خصوصی دانلود شود. همچنین ممکن است برخی منابع به احراز هویت یا مجوزهای خاص نیاز داشته باشند.
در این شرایط، باید مشخص کنید خطا هنگام دریافت اطلاعات پکیج رخ میدهد یا هنگام دانلود فایلهای آن. اگر رجیستری پاسخ میدهد اما یک وابستگی از منبع دیگری دریافت نمیشود، همان دامنه یا منبع باید جداگانه بررسی شود.
به همین دلیل، بهتر است پیش از نتیجهگیری درباره عملکرد DNS، چند آزمایش مستقل انجام دهید و نتیجه هر کدام را بررسی کنید.
تفاوت DNS شکن با VPN و پراکسی برای npm
DNS، VPN و پراکسی نقش یکسانی ندارند و انتخاب میان آنها به نوع مشکل بستگی دارد.
| روش | کاربرد اصلی | محدودیت |
|---|---|---|
| DNS شکن DNS | کمک به رفع برخی مشکلات دسترسی به سرویسها در سطح DNS | IP عمومی را تغییر نمیدهد و تمام ترافیک اینترنت را از تونل عبور نمیدهد. |
| VPN تونل شبکه | مسیریابی ترافیک شبکه از طریق اتصال VPN و تغییر مسیر ارتباط با مقصد | عملکرد و دسترسی به مقصد به کیفیت سرویس، تنظیمات و محدودیتهای شبکه بستگی دارد. |
| پراکسی واسط اتصال | هدایت درخواستهای سازگار با پراکسی از طریق یک سرور واسط | ممکن است به تنظیم جداگانه در npm، ترمینال یا محیط توسعه نیاز داشته باشد. |
اگر مشکل npm ناشی از محدودیت DNS باشد، امتحان کردن شکن میتواند انتخاب مناسبی باشد. اگر مشکل از مسیریابی، IP، پراکسی یا سیاستهای شبکه باشد، باید راهکار متناسب با همان عامل را بررسی کنید.
پرسشهای متداول درباره تحریم شکن برای npm
آیا با شکن npm install کار میکند؟
اگر مشکل مسیر شبکه به ریجستری باشد، میتواند کمک کند. باید روی شبکه خودتان آزمایش شود.
چرا npm ping موفق است ولی نصب خطا میدهد؟
ممکن است وابستگی از GitHub بیاید یا بسته در مرحله نصب باینری جداگانه دانلود کند.
پروکسی npm روی DNS اثر دارد؟
بله. اگر تنظیم پروکسی فعال باشد، درخواست از آن رد میشود و DNS سیستم نقشی ندارد.
شکن توکن npm یا حساب میسازد؟
خیر.
برای yarn و pnpm هم کار میکند؟
مسیر شبکه یکی است ولی تنظیم هر ابزار جداست.
اگر کار نکرد چه کنم؟
کد خطا، خروجی npm config get registry و npm ping و نوع محیط (سیستم، Docker، CI) را مشخص کنید.
جمعبندی
اگر هنگام اجرای npm install یا دریافت وابستگیهای پروژه با خطای اتصال مواجه میشوید، ابتدا رجیستری و متن خطا را بررسی کنید. سپس با دستورهایی مانند npm ping و ابزارهای بررسی DNS مشخص کنید مشکل از شناسایی دامنه است یا به مرحله دیگری از اتصال مربوط میشود.
تحریم شکن برای npm میتواند در شرایطی که مشکل به محدودیت یا اختلال DNS مربوط است، به دسترسی بهتر کمک کند. برای استفاده از آن، DNS را متناسب با سیستم خود تنظیم کنید و پس از هر تغییر، اتصال به رجیستری را دوباره آزمایش کنید.
اگر از ویندوز، مک یا لینوکس استفاده میکنید، راهنمای اختصاصی همان سیستمعامل را دنبال کنید. در صورتی که خطا همچنان باقی است، بهجای تغییرات متعدد و پاک کردن بیدلیل کش یا فایلهای پروژه، نوع خطا و مسیر دریافت پکیج را بررسی کنید تا راهکار متناسب با علت واقعی انتخاب شود.