خطای E: Unable to locate package در اوبونتو یعنی APT نتوانسته بستهای با نام واردشده را در فهرست مخازن فعال پیدا کند. برای شروع، اجرای sudo apt update، بررسی املای نام بسته و فعالبودن مخازن درست مشکل را حل میکند. اگر خطا ادامه داشت، نسخه اوبونتو، معماری سیستم و مخزن ارائهدهنده بسته را بررسی کنید.
پاسخ سریع: از این مراحل شروع کنید
- نام بسته را دوباره بررسی کنید.
- فهرست بستهها را بهروزرسانی کنید:
sudo apt update - وجود بسته را جستوجو کنید:
apt search نام-بسته - مخازن فعال و نسخه اوبونتو را بررسی کنید.
- اگر بسته در مخزن رسمی نیست، فقط مخزن رسمی سازنده را طبق مستندات همان محصول اضافه کنید.
نکته امنیتی: دستورهایی را که از منابع ناشناس دریافت میکنید با دسترسی sudo اجرا نکنید. اضافهکردن PPA یا مخزن شخص ثالث میتواند امنیت و پایداری سرور را تحت تأثیر قرار دهد.
علت خطای Unable to locate package چیست؟
APT اطلاعات بستههای قابل نصب را از مخازنی میگیرد که در تنظیمات سیستم تعریف شدهاند. اگر نام بسته اشتباه باشد، فهرست محلی قدیمی شده باشد، مخزن لازم غیرفعال باشد یا نسخه اوبونتو دیگر پشتیبانی نشود، APT بسته را پیدا نمیکند و این پیام را نمایش میدهد.
روش اول: نام بسته را دقیق بررسی کنید
نام بسته باید دقیقاً مطابق نام ثبتشده در مخزن باشد. حروف بزرگ و کوچک، خط تیره و پسوندها مهماند. برای جستوجوی نام درست از دستور زیر استفاده کنید:
apt search keyword
برای مشاهده اطلاعات و نسخه کاندید یک بسته نیز میتوانید بنویسید:
apt policy package-name
اگر هیچ نتیجهای نمایش داده نشد، بسته احتمالاً در مخازن فعال نسخه فعلی شما وجود ندارد یا نام آن متفاوت است.
روش دوم: فهرست بستهها را بهروزرسانی کنید
بعد از نصب تازه اوبونتو، تغییر مخزن یا گذشت زمان، ابتدا فهرست محلی بستهها را تازه کنید:
sudo apt update
سپس دوباره نصب را امتحان کنید:
sudo apt install package-name
اگر خود دستور apt update خطا میدهد، قبل از نصب هر بستهای همان خطا را برطرف کنید. پیامهایی مانند خطای DNS، گواهی، امضا، مخزن بدون Release file یا آدرس 404 نشان میدهند مشکل از دسترسی شبکه یا پیکربندی مخازن است.
روش سوم: نسخه و کدنام اوبونتو را مشخص کنید
برای دیدن نسخه سیستم این دستور را اجرا کنید:
cat /etc/os-release
در خروجی، مقادیر VERSION_ID و VERSION_CODENAME را بررسی کنید. مخزنی که برای یک نسخه دیگر ساخته شده باشد ممکن است بسته موردنظر را ارائه نکند یا باعث خطای وابستگی شود.
برای سرورهای جدید بهتر است از نسخه LTS تحت پشتیبانی استفاده شود. نسخههای موقت اوبونتو چرخه پشتیبانی کوتاهتری دارند و پس از پایان پشتیبانی، مخازن عادی آنها ممکن است دیگر در دسترس نباشد.
روش چهارم: مخازن فعال را بررسی کنید
APT منابع خود را از فایل /etc/apt/sources.list و فایلهای داخل مسیر /etc/apt/sources.list.d/ میخواند. برای مشاهده منابع فعال میتوانید از فرمان زیر استفاده کنید:
grep -RhsE "^[[:space:]]*(deb|Types:)" /etc/apt/sources.list /etc/apt/sources.list.d/
در نسخههای جدید اوبونتو، فایلهای با قالب .sources نیز رایجاند. اگر بهتازگی فایل مخزن را ویرایش کردهاید، کدنام نسخه، آدرس و کلید امضای مخزن را با مستندات رسمی همان ارائهدهنده تطبیق دهید و سپس sudo apt update را اجرا کنید.
فعالکردن مخزن Universe
برخی بستههای جامعه اوبونتو در بخش Universe قرار دارند. اگر مستندات رسمی بسته مشخص کرده که از Universe نصب میشود، ابتدا ابزار مدیریت مخازن را نصب و سپس Universe را فعال کنید:
sudo apt update
sudo apt install software-properties-common
sudo add-apt-repository universe
sudo apt update
پس از آن نصب بسته را دوباره امتحان کنید. فعالکردن مخازن اضافی بدون نیاز مشخص توصیه نمیشود.
روش پنجم: بسته خارج از مخازن رسمی را درست نصب کنید
بعضی نرمافزارها در مخازن پیشفرض اوبونتو نیستند یا نسخه جدیدترشان فقط در مخزن رسمی سازنده منتشر میشود. در این حالت:
- ابتدا صفحه نصب رسمی همان نرمافزار را باز کنید.
- مخزن متناسب با نسخه و معماری اوبونتو را انتخاب کنید.
- کلید امضا را با روش توصیهشده سازنده در keyring اختصاصی ذخیره کنید.
- بعد از افزودن مخزن،
sudo apt updateرا اجرا و پیامها را بررسی کنید.
از غیرفعالکردن بررسی امضا، گزینههای insecure و دستورهای منسوخ apt-key برای دورزدن خطای مخزن استفاده نکنید. روش keyring اختصاصی و Signed-By سازنده معتبر را با نسخه توزیع تطبیق دهید.
اگر نسخه اوبونتو منقضی شده است چه کنیم؟
اگر نسخه سیستم به پایان عمر رسیده باشد، دریافت اصلاحات امنیتی متوقف میشود و آدرس مخازن نیز ممکن است تغییر کند. انتقال موقت منابع به آرشیو قدیمی فقط یک راه اضطراری برای بازیابی یا آمادهسازی ارتقاست؛ راهحل استاندارد، تهیه نسخه پشتیبان و ارتقا به یک نسخه LTS تحت پشتیبانی است.
پیش از ارتقای سرور، از فایلها و پایگاه داده نسخه پشتیبان بگیرید، فضای آزاد دیسک را کنترل کنید و سازگاری پنل، وبسرور، PHP و پایگاه داده را بسنجید.
چکلیست عیبیابی
- بررسی DNS و HTTPS همان میزبان مخزن؛ ناموفقبودن ping بهتنهایی قطع شبکه را ثابت نمیکند.
sudo apt updateبرای مشاهده خطای واقعی مخازنapt searchبرای یافتن نام صحیح بستهapt policyبرای بررسی نسخه کاندید و منبع بستهdpkg --print-architectureبرای بررسی معماری سیستمcat /etc/os-releaseبرای تشخیص نسخه و کدنام اوبونتو
سؤالات متداول
چرا بعد از apt update هنوز بسته پیدا نمیشود؟
معمولاً نام بسته اشتباه است، مخزن لازم فعال نیست، بسته برای نسخه یا معماری شما عرضه نشده یا یکی از مخازن هنگام بهروزرسانی خطا داده است. خروجی کامل sudo apt update و سپس apt policy package-name را بررسی کنید.
آیا استفاده از apt-get بهجای apt مشکل را حل میکند؟
خیر. هر دو ابزار از همان فهرست مخازن استفاده میکنند؛ بنابراین اگر بسته در منابع فعال وجود نداشته باشد، تغییر فرمان معمولاً کمکی نمیکند.
آیا میتوان هر PPA را برای نصب بسته اضافه کرد؟
از نظر فنی ممکن است، اما برای سرور تولیدی توصیه نمیشود. PPA باید معتبر، فعال و مخصوص نسخه اوبونتوی شما باشد. همیشه مخزن رسمی پروژه یا بسته موجود در مخازن اوبونتو را در اولویت قرار دهید.
جمعبندی
برای رفع خطای Unable to locate package از سادهترین علتها شروع کنید: نام بسته، بهروزرسانی فهرستها و خروجی خطاهای APT. سپس نسخه اوبونتو، مخازن فعال و معماری سیستم را بررسی کنید. افزودن مخزن شخص ثالث باید آخرین گزینه و فقط بر اساس مستندات رسمی سازنده باشد.