Personal Package Archives (PPA) thật tuyệt vời. Bạn nhận được phần mềm hoặc chương trình mới bị thiếu trong kho lưu trữ mặc định của bản phân phối. Nhưng theo thời gian, bạn sẽ muốn loại bỏ một PPA vì nhiều lý do. Việc làm thế nào bạn làm điều này phụ thuộc vào những gì bạn muốn đạt được. Thông thường, bạn sẽ thấy mình thuộc trong một trong hai trường hợp sau:
- Bạn muốn xóa PPA khỏi danh sách nguồn phần mềm và loại bỏ các gói đã cài đặt.
- Bạn muốn xóa PPA khỏi danh sách nguồn phần mềm của mình và trở lại các gói mặc định do bản phân phối cung cấp.
Hãy cùng khám phá kịch bản đầu tiên!
Loại bỏ PPA và các gói của nó
Hãy chắc chắn rằng bạn đã cài đặt tiện ích “add-apt-repository”. Tiện ích này nên có sẵn, theo mặc định, trên hầu hết các bản phân phối dựa trên Ubuntu, nhưng để đảm bảo, hãy chạy lệnh sau.
sudo apt install software-properties-common
Tiếp theo, bạn cần tên chính xác của PPA muốn loại bỏ. Nếu quên nó, bạn có thể tìm kiếm trên Google, mở trang Launchpad nơi nó được lưu trữ và tìm hướng dẫn cài đặt. Ở đó, bạn sẽ tìm thấy tên chính xác của PPA (ví dụ: “ppa:libreoffice/ppa”).
Ngoài ra, thay vì tìm kiếm trên web, bạn có thể tìm kiếm danh sách nguồn phần mềm của mình để xem PPA nào hiện đang hoạt động.
grep -r -i ppa /etc/apt/
Tiếp theo, bạn có thể mở bất kỳ liên kết nào bắt đầu với tên http://ppa.launchpad.net và tìm tên PPA chính xác mà bạn cần.
Thay thế “NAME_OF_PPA” trong lệnh tiếp theo bằng tên thực tế bạn đã tìm thấy trước đó. Ví dụ, lệnh cuối cùng có thể trông như thế này: sudo add-apt-repository --remove ppa:libreoffice/ppa
.
sudo add-apt-repository --remove NAME_OF_PPA
Làm mới thông tin của trình quản lý gói.
sudo apt update
Cuối cùng, loại bỏ gói và các dependency của nó với:
sudo apt autoremove NAME_OF_PACKAGE
Sau khi bạn nhập lệnh này, hãy chú ý đến danh sách các gói sẽ bị xóa. Nếu thấy một cái gì đó bạn cần trong danh sách này, thì hãy sử dụng tùy chọn remove
của apt (thay vì autoremove
):
sudo apt remove NAME_OF_PACKAGE
Tìm tất cả các gói được cài đặt từ PPA
Nếu tùy chọn autoremove
dường như không thể gỡ cài đặt tất cả các gói đến từ PPA đó, bạn có thể phải xóa chúng theo cách thủ công.
Cài đặt các tiện ích sau.
sudo apt install apt-forktracer
Bây giờ, bạn có thể tìm thấy tất cả các gói được cài đặt trên hệ thống đến từ PPA.
apt-forktracer | grep -i ppa | awk '{print $1}'
Tiếp theo, bạn có thể xóa chúng bằng sudo apt remove
hoặc sudo apt autoremove
. autoremove
sẽ cố gắng tự động gỡ cài đặt (các) gói bạn chỉ định, cộng với tất cả những dependency. remove
sẽ chỉ gỡ cài đặt (các) gói bạn chỉ định.
Nếu chắc chắn rằng bạn có thể xóa tất cả các gói được hiển thị trước đó bởi apt-forktracer
, bạn có thể sử dụng một lệnh như sau:
sudo apt remove $(apt-forktracer | grep -i ppa | awk '{print $1}')
Hãy chắc chắn kiểm tra kỹ những gì sẽ bị xóa để bạn không vô tình gỡ cài đặt thứ gì đó bạn cần.
Xóa gói PPA và hoàn nguyên các phiên bản mặc định của bản phân phối
Giống như trong phần trước, trước tiên bạn cần biết tên chính xác của PPA. Nếu bạn không biết, hãy thử các phương pháp trên.
Cài đặt ppa-purge.
sudo apt install ppa-purge
Chạy script ppa-purge. Script này sẽ xóa PPA khỏi kho phần mềm của bạn và thay thế các gói PPA đã cài đặt bằng những gói mặc định của bản phân phối. Tất nhiên, điều này đòi hỏi bản phân phối Linux của bạn có sẵn các gói này. Trong hầu hết các trường hợp, điều này có nghĩa là phần mềm mới sẽ bị hạ cấp xuống các phiên bản cũ hơn.
sudo ppa-purge NAME_OF_PPA
Lệnh ví dụ:
sudo ppa-purge ppa:libreoffice/ppa
Trên các hệ thống “sạch”, các lệnh trên sẽ chạy mà không gặp bất kỳ trở ngại nào. Tuy nhiên, trên những hệ thống khác, bạn có thể gặp phải một số xung đột do các gói không tương thích với nhau. Thật không may, không có giải pháp chung, vì điều đó phụ thuộc vào tình huống cụ thể mà bạn gặp phải.
Hầu hết mọi trường hợp có thể được giải quyết bằng cách xóa, hạ cấp hoặc nâng cấp một số gói trong số đó. Để tránh trải nghiệm như vậy trong tương lai, bạn có thể đọc bài viết: Đừng phá hỏng hệ thống Debian! để biết cách giữ cho hệ điều hành của mình ở trạng thái “sạch”.
Chúc bạn thực hiện thành công!