Lỗi không thể xác định vị trí gói trong Linux

Spread the love

Linux là một lựa chọn hệ điều hành tuyệt vời cho đến khi bạn gặp phải lỗi. Nó không phải là bạn; đó là cách người dùng xử lý Linux, đòi hỏi phải học hỏi và khắc phục sự cố liên tục.

Linux đi kèm với rất nhiều trình quản lý gói tuyệt vời. Theo mặc định, hầu hết người dùng đều bắt đầu với APT, vì người dùng chọn sử dụng Ubuntu – một trong những hệ điều hành phổ biến nhất.

Và khi sử dụng APT, bạn có thể thấy mình bị kẹt với lỗi “Không thể xác định vị trí gói”, đặc biệt là trong Ubuntu.

Đó là lý do tại sao trong hướng dẫn này, chúng ta sẽ tìm hiểu cách bạn có thể giải quyết lỗi. Trong suốt hướng dẫn này, chúng tôi sẽ sử dụng Ubuntu làm hướng dẫn. Nếu bạn đang sử dụng phiên bản Linux khác sử dụng trình quản lý gói APT, bạn có thể làm theo phiên bản đó mà không gặp vấn đề gì.

Bắt đầu nào.

Lỗi “E: Không thể định vị gói” là gì?

Lỗi này rất rõ ràng và bạn có thể tự hiểu được. Vì vậy, bạn đã cố gắng cài đặt một gói hoặc ứng dụng nhưng gặp lỗi “E: Không thể định vị gói_name”.

Điều đó đơn giản có nghĩa là Linux không thể tìm thấy gói bạn đang cố cài đặt.

Và trước khi bắt đầu hoảng sợ, bạn phải biết rằng đó là lỗi phổ biến ở người dùng Ubuntu hoặc APT.

Tin tốt là có giải pháp cho loại vấn đề này. Cho dù bạn là người mới sử dụng Linux hay người kỳ cựu, bạn đều có thể giải quyết vấn đề bằng cách làm theo hướng dẫn của chúng tôi.

Cũng đọc: Cách thức hoạt động của Trình quản lý gói Linux: Hướng dẫn đầy đủ

Lý do gặp lỗi “E: Không thể định vị gói”

Chúng ta cũng phải tìm hiểu nguyên nhân chính để hiểu rõ hơn về lỗi.

Bạn sẽ sử dụng trình quản lý gói APT mặc định khi cài đặt gói trong Ubuntu. Bạn có thể sử dụng apt-get hoặc apt để cài đặt gói. Lệnh để làm như vậy là như sau.

$ sudo apt-get install package-name

Nếu mọi thứ hoạt động tốt, bạn sẽ không thấy bất kỳ lỗi nào. Gói sẽ cài đặt như dự định. Tuy nhiên, đôi khi bạn nhận được thông báo “E: Không thể định vị gói package_name”. Đầu ra trông giống như bên dưới.

#output

Reading package lists... Done 

Building dependency tree       

Reading state information... Done 

E: Unable to locate package package_name

Khi xảy ra lỗi, Linux không tìm được gói. Vì vậy, trách nhiệm của chúng tôi là khắc phục sự cố và đảm bảo sự cố đó không xảy ra lần nữa.

Trước khi cố gắng khắc phục, bạn phải biết nguyên nhân. Một số nguyên nhân có thể dẫn đến lỗi bao gồm:

  • Bạn viết sai chính tả tên gói – phổ biến nhất.
  • Danh sách tài nguyên đang gặp vấn đề
  • Bộ đệm của kho lưu trữ Ubuntu không hỗ trợ các gói mới
  • Thời gian hỗ trợ của phiên bản Ubuntu đã hết
  • Phiên bản gói không có sẵn cho phiên bản Linux bạn đang sử dụng
  • Đường hô hấp chính không có sẵn để cài đặt gói mong muốn
  Cách phát trực tuyến video tới Chromecast trên Linux thông qua dòng lệnh

Những cách bạn có thể giải quyết lỗi “Không thể định vị gói hàng”

Trong phần này, chúng ta sẽ xem xét các cách khác nhau để bạn có thể giải quyết lỗi.

#1. Tên gói – Bạn đã gõ đúng chưa?

Một trong những lỗi phổ biến mà người dùng Linux mắc phải là “không” gõ chính xác tên gói. Vì vậy, nếu bạn mắc một lỗi đánh máy đơn giản, Ubuntu sẽ báo lỗi.

Hãy xem một ví dụ khi cài đặt Gimp – một công cụ xử lý hình ảnh.

$ sudo apt-get install gump
#output

$ sudo apt-get install gump

Reading package lists... Done

Building dependency tree... Done

Reading state information... Done

E: Unable to locate package gump

Đúng như mong đợi, bạn sẽ nhận được thông báo “E: Không thể định vị gói gump”. Rốt cuộc thì không có gói nào “cao su” ở ngoài đó cả.

Lỗi đánh máy có thể xảy ra thường xuyên hơn bạn nghĩ. Đó là vì Linux phân biệt chữ hoa chữ thường và ngay cả khi bạn nhập chính xác tên gói, nó vẫn có thể không hoạt động do viết hoa. Vì vậy, nếu bạn cố cài đặt gimp bằng cách đặt tên là Gimp, nó vẫn thất bại.

$ sudo apt-get install gump
Reading package lists... Done

Building dependency tree... Done

Reading state information... Done

E: Unable to locate package gump

Vì vậy, cách duy nhất để cài đặt gimp là nhập chính xác tên gói.

$ sudo apt-get install gimp

Nhưng nếu bạn cần biết chính xác tên gói thì sao? Trong trường hợp đó, bạn có thể sử dụng lệnh apt search để tìm nó. Ví dụ: nếu bạn đang tìm gói có chứa “khỉ” nhưng không chắc chắn về tên đầy đủ của nó, hãy chạy lệnh sau để tìm ra tên gói có sẵn.

$ apt search monkey

p   graphmonkey                     - a GTK#-based graphing calculator          

p   libex-monkeypatched-perl        - experimental API for safe monkey-patching 

p   libmonkey-patch-action-perl     - module to monkey-patching subs from other 

p   libmonkey-patch-perl            - scoped monkey-patching Perl module        

p   libtwelvemonkeys-java           - collection of plugins and extensions for J

p   libtwelvemonkeys-java-doc       - Documentation for libtwelvemonkeys-java   

p   monkeysphere                    - leverage the OpenPGP web of trust for SSH 

v   monkeysphere-validation-agent   -                                           

v   node-fs-monkey                  -                                           

p   searchmonkey                    - search files using regular expressions aim

#2. Cập nhật danh sách gói/Bộ nhớ đệm kho lưu trữ

Ubuntu tương tác với các kho lưu trữ một cách khác nhau. Thay vì tải xuống toàn bộ hệ thống hô hấp, nó xây dựng một bộ nhớ đệm cục bộ. Bộ đệm cục bộ chứa danh sách các gói có sẵn.

Khi bạn chạy sudo apt update, Ubuntu sẽ tạo bộ đệm cục bộ.

$ sudo apt update

Khi bạn chạy lệnh cài đặt apt-get, Trình quản lý gói APT sẽ tìm kiếm bộ đệm cho gói. Nó sẽ lấy thông tin, chẳng hạn như phiên bản, trước khi tiến hành tải xuống gói từ kho lưu trữ trực tuyến qua internet.

  6 tiện ích KDE Plasma 5 tốt nhất cho máy tính để bàn Linux của bạn

Vì vậy, nếu gói không được liệt kê trong bộ đệm, Ubuntu sẽ đưa ra lỗi và cho bạn biết về nó.

Điều này xảy ra khi bạn cài đặt bản phân phối Linux dựa trên Ubuntu hoặc Debian (chẳng hạn như Linux Mint) lần đầu tiên. Vì bộ đệm không được xây dựng với thông tin mới nhất nên việc cài đặt ngay cả các gói tiêu chuẩn cũng có thể gây ra lỗi. Nếu bạn có bản cài đặt Ubuntu mới, hãy chạy bản cập nhật sudo apt ít nhất một lần để tạo bộ đệm cục bộ.

Trong một số trường hợp, bộ đệm có thể cần được cập nhật. Và sau đó bạn phải cập nhật nó bằng lệnh apt update.

Bạn cũng nên dọn dẹp bộ nhớ đệm trước khi cập nhật. Để làm như vậy, hãy chạy lệnh sau.

$ sudo apt clean && sudo apt update

#3. Kiểm tra gói có sẵn

Ngay cả khi bạn nhập đúng tên gói và cập nhật bộ đệm của kho lưu trữ, bạn vẫn có thể gặp lỗi “không thể định vị gói” trong Ubuntu. Điều này xảy ra do không có sẵn gói — và cho dù bạn có cố gắng thế nào đi chăng nữa, bạn cũng không thể cài đặt gói.

Vì vậy, lựa chọn của bạn là gì?

Bạn sẽ cần tìm hiểu về kho lưu trữ Universe để hiểu các lựa chọn của mình. Nói chung, hệ thống Linux không kích hoạt nó theo mặc định, điều này có thể dẫn đến lỗi. Hoặc phiên bản Ubuntu bạn đang chạy không có quyền truy cập vào gói bạn đang cố tải xuống và cài đặt.

Để kiểm tra xem Ubuntu của bạn có bị lỗi thời hay không, trước tiên bạn cần kiểm tra phiên bản của nó. Bạn có thể làm điều đó bằng cách chạy lệnh sau.

nitt@logan99:~$ lsb_release -a
#output
No LSB modules are available.

Distributor ID: Ubuntu

Description: Ubuntu 22.04.3 LTS

Release: 22.04

Codename: jammy

Tôi đang sử dụng phiên bản 22.04 LTS ổn định mới nhất với tên mã Jammy. Xuất sắc; ghi lại chúng và sau đó đi đến gói Ubuntu trang mạng.

Trên trang này, bạn có thể tìm kiếm các gói theo cách thủ công. Nó có một phần Tìm kiếm tiện lợi nơi bạn có thể tìm kiếm bằng cách nhập từ khóa. Từ khóa có thể là tên gói hoặc bất cứ thứ gì có thể giúp bạn xác định chính xác gói đó.

Vì vậy, bây giờ, tất cả những gì bạn cần làm là nhập tên gói và nhấn nút Tìm kiếm.

Vì gimp là một gói đã biết nên chúng tôi nhận được kết quả chính xác.

Và nếu để ý kỹ, bạn sẽ thấy nó có sẵn trong kho Universe. Để tải xuống và cài đặt gói, bạn phải truy cập kho vũ trụ cho phiên bản Jammy 22.04 LTS.

Bây giờ, bạn chắc chắn rằng gói này có sẵn cho phiên bản Ubuntu của bạn. Tiếp theo, bạn sẽ cần kích hoạt kho lưu trữ. Để kích hoạt kho lưu trữ, hãy chạy lệnh sau.

$ sudo apt-add-repository universe multiverse

Lệnh trên cho phép kho lưu trữ vũ trụ và đa vũ trụ.

  Cách lưu trữ một máy chủ trò chơi Xonotic Linux

Khi đã xong, hãy đảm bảo xây dựng lại bộ đệm.

$ sudo apt update

Bạn cũng có thể cài đặt các kho lưu trữ khác, chẳng hạn như kho chính và kho bị hạn chế. Chạy lệnh sau để làm như vậy.

$ sudo apt-get-repository main

$ sudo apt-get-repository restricted

Nhưng nếu gói này không có sẵn cho phiên bản Ubuntu của bạn thì sao? Trong trường hợp đó, bạn sẽ phải sử dụng kho lưu trữ của bên thứ ba như PPA. Bạn có thể đọc thêm về nó ở đây: Ubuntu PPA là gì và cách cài đặt nó?

#4. Đảm bảo rằng bạn đang chạy bản phát hành Ubuntu đang hoạt động

Ubuntu cung cấp phiên bản LTS với sự hỗ trợ lâu dài trong 3 hoặc 5 năm. Điều này có thể khiến nhiều người dùng không cập nhật lên phiên bản được hỗ trợ, khiến hệ điều hành không thể nhận bất kỳ bản cập nhật mới nào. Khi phiên bản Ubuntu của bạn kết thúc, bạn không thể cài đặt các gói mới và sẽ gặp lỗi “không thể định vị gói”.

Để kiểm tra xem Ubuntu của bạn có còn được hỗ trợ hay không, hãy chạy lệnh sau.

$ hwe-support-status --verbose 
#output

nitt@logan99:~$ hwe-support-status --verbose

You are not running a system with a Hardware Enablement Stack. Your system is supported until April 2027.

nitt@logan99:~$

Như bạn có thể thấy, phiên bản Ubuntu của tôi được hỗ trợ cho đến tháng 4 năm 2027. Bạn có thể bỏ qua Ngăn hỗ trợ phần cứng vì nó không liên quan đến chủ đề.

Nếu phiên bản Ubuntu của bạn không được hỗ trợ, bạn chỉ cần nâng cấp lên phiên bản LTS mới nhất.

#5. Sửa kho lưu trữ

Nếu không có gì khắc phục được lỗi “không thể định vị gói”, thì đã đến lúc kiểm tra tệp .list nguồn của Ubuntu theo cách thủ công.

Tệp chứa tất cả dữ liệu liên quan đến kho lưu trữ. Bạn sẽ cần truy cập vào tệp/etc/apt/sources.list.

Nói chung, bạn phải kiểm tra xem các liên kết kho lưu trữ có hoạt động hay không và có khớp với danh sách chính thức hay không. Để kiểm tra, hãy truy cập trang web của bản phân phối chính thức và tìm thông tin.

Kết luận – Nếu không có gì hiệu quả thì sao?

Sau một giờ khắc phục sự cố — bạn vẫn thấy mình gặp lỗi tương tự “E: không thể định vị gói”.

Điều đó thật khó chịu và bạn sẽ từ bỏ gói này và tìm kiếm một gói thay thế hoặc thử cài đặt lại Ubuntu.

Trước khi làm như vậy, tốt nhất bạn nên thử mọi khả năng của mình. Ví dụ: bạn có thể bắt đầu tìm kiếm phiên bản cũ hơn của gói hỗ trợ phiên bản Ubuntu của mình. Bạn có thể tìm thấy chúng thông qua kho lưu trữ cá nhân của bên thứ ba (PPA).

Nếu bạn không thể tìm thấy PPA chứa gói, hãy kiểm tra trang web chính thức để tìm phần mềm bạn muốn. Nói chung, họ cung cấp cách trực tiếp để tải xuống các tệp gói.

Nếu mọi thứ đều không thành công, tốt nhất bạn nên tìm kiếm các ứng dụng thay thế.

Điều này dẫn chúng ta đến phần cuối của hướng dẫn, nơi chúng ta đã học được những cách khác nhau để giải quyết lỗi “không thể định vị gói”. Đến bây giờ, bạn phải hiểu rõ cách Ubuntu tương tác với các kho lưu trữ thông qua bộ đệm để truy xuất, tải xuống và cài đặt các gói.

Tiếp theo, hãy xem các ví dụ hay nhất về lệnh find trong Linux.

x