SSD Nodes Learn Hosting plans →
Hướng dẫn Matt ConnorBởi Matt Connor

Cách sửa lỗi keyring khi update Omarchy

Lỗi invalid or corrupted package PGP signature trên Omarchy xảy ra do archlinux-keyring bị cũ. Hãy làm theo hướng dẫn này để refresh keyring và sửa lỗi pacman thủ công.

Verified Every command ran end-to-end on a fresh Ubuntu 24.04 server, September 4, 2026.

Vì sao update Omarchy thất bại với lỗi keyring

Một lần update Omarchy dừng với invalid or corrupted package (PGP signature) là lỗi keyring, không phải do tải xuống bị lỗi. Bản archlinux-keyring trên máy bạn cũ hơn các signing key mà Arch đang sử dụng, nên pacman từ chối package vì không thể truy nguyên package đó về một key được tin cậy. Hãy refresh keyring, sau đó chạy update lại.

Lỗi này không riêng gì Omarchy. Đây là một lỗi thường gặp của Arch, và Omarchy khiến nhiều người gặp lỗi này ngay từ lần đầu sử dụng một máy Arch.

Trước khi chạy các command, cần xác định phạm vi. Omarchy là desktop Hyprland dựa trên Arch, nên toàn bộ nội dung dưới đây áp dụng cho máy tính bạn đang sử dụng trực tiếp. Đây không phải hướng dẫn cài Omarchy trên VPS. Server của bạn chạy một hệ điều hành khác, và section cuối sẽ dẫn đến các trang phù hợp với server đó.

Bản sửa tối thiểu

Chạy 2 lệnh, rồi chạy update:

sudo pacman -Sy
sudo pacman -S archlinux-keyring
omarchy update

sudo pacman -S archlinux-keyring in ==> Appending keys from archlinux.gpg... rồi chạy thêm một bước ==> Locally signing trusted keys in keyring... chậm hơn. Những dòng đó cho biết các developer key mới đã được thêm vào keyring. Lệnh update vừa thất bại một phút trước giờ chạy đến cuối.

Đây là chuỗi thao tác mà người dùng đã báo cáo trong issue 4608 của Omarchy. Đây cũng là báo cáo dẫn đến việc thêm bước refresh keyring trực tiếp vào updater.

Chạy riêng pacman -Sy cần được cảnh báo. Lệnh này tải package database mới nhưng không upgrade các package hiện có. Cài phần mềm tùy ý từ trạng thái đó sẽ tạo ra partial upgrade. Partial upgrade làm hỏng các máy Arch, vì package vừa build sẽ cần các phiên bản library được ghi trong database mới, trong khi máy của bạn vẫn đang dùng các phiên bản cũ. archlinux-keyring là ngoại lệ được chấp nhận: lệnh này chỉ cung cấp key material thay vì các binary đã liên kết, và bạn chạy full upgrade ngay sau đó.

omarchy update là lệnh của Omarchy 4. Omarchy 4, có tên Quattro, được phát hành vào August 2026 và là series hiện tại tính đến October 2026. v4.0.6, phát hành ngày 19 October 2026, là release mới nhất. Release candidate v4.5.0 được phát hành ngày 20 October 2026 và được đánh dấu là pre-release. Script phía sau lệnh đó là omarchy-update, bạn cũng có thể chạy trực tiếp script này. Nên dùng một trong hai lệnh trên thay vì chỉ chạy pacman -Syu, vì Omarchy updater trước tiên tạo filesystem snapshot rồi chạy các migration để giữ cấu hình đồng bộ với release mới. Chạy pacman -Syu thủ công sẽ bỏ qua cả hai bước này.

omarchy update keyring làm gì

Omarchy 4 cung cấp riêng bước xử lý keyring:

omarchy update keyring

Lệnh này xử lý 2 keyring riêng biệt. Kể từ v4.0.5, phát hành ngày 18 October 2026, lệnh chạy sudo pacman -Sy --needed --noconfirm archlinux-keyring. Vì vậy, keyring chỉ được cài lại khi có phiên bản mới hơn, do key mới hoặc key bị thu hồi được đưa vào repository dưới dạng phiên bản package mới. Cho đến v4.0.4, script không có --needed và cài lại keyring trong mỗi lần update. Lý do được nêu trong script của phiên bản đó là nội dung của keyring có thể thay đổi mà phiên bản package không đổi. Dù theo cách nào, bước này vẫn sync database trước và chạy trước main upgrade. Lệnh cũng tải rồi local sign Omarchy signing key khi thiếu key đó hoặc thiếu package omarchy-keyring:

sudo pacman-key --recv-keys 40DFB630FF42BCFFB047046CF0134EE680CAC571 --keyserver keys.openpgp.org
sudo pacman-key --lsign-key 40DFB630FF42BCFFB047046CF0134EE680CAC571

Có 2 keyring vì máy của bạn cài package từ 2 nơi. archlinux-keyring là package riêng của Arch trong repository core, chứa key của các developer và trusted user của Arch. omarchy-keyring là package third-party. Package này đến từ repository [omarchy] mà Omarchy thêm vào /etc/pacman.conf. Trên stable channel, repository đó là Server = https://pkgs.omarchy.org/stable/$arch và chứa key dùng để sign mọi package omarchy-*. Omarchy 4 cung cấp SigLevel = Required DatabaseOptional, vì vậy package có signature không khớp với trusted key sẽ bị từ chối, bất kể package đến từ repository nào.

Vì sao trust không xác định là vấn đề về key, không phải vấn đề tải xuống

Lỗi thường có dạng như sau. Tên package và signer thay đổi tùy từng máy. 2 dòng cuối thì không thay đổi.

error: archlinux-keyring: signature from "Christian Hesse <eworm@archlinux.org>" is unknown trust
:: File /var/cache/pacman/pkg/archlinux-keyring-20230704-1-any.pkg.tar.zst is corrupted (invalid or corrupted package (PGP signature)).
error: failed to commit transaction (invalid or corrupted package (PGP signature))

Hãy đọc unknown trust theo nghĩa đen. gpg đã phân tích signature và xác định signature có cấu trúc hợp lệ. Vấn đề là nó không thể liên kết key đứng sau signature đó với một key mà máy của bạn trust. Sau đó pacman đánh dấu package là corrupt, vì đối với pacman, package không thể verify và package bị hỏng cho cùng một kết quả.

Các key được trust nằm trong /etc/pacman.d/gnupg. Đây là bản sao cục bộ và không bao giờ được fetch trực tiếp trong lúc update. Nó được seed từ các file key mà package archlinux-keyring cài vào /usr/share/pacman/keyrings. Arch tự quản lý lịch thêm và revoke developer key. Vì vậy, một máy không được sử dụng trong vài tháng có thể chứa danh sách key cũ hơn developer đã ký package vào sáng nay. Message liên quan signature from ... is marginal trust có cùng nguyên nhân: các key đã có mặt, nhưng thiếu các local signature dùng để xác lập trust cho chúng trong keyring của bạn.

Sửa chữa đầy đủ khi chính keyring bị hỏng

Đôi khi sudo pacman -S archlinux-keyring cũng thất bại với chính lỗi bạn đang cố sửa, hoặc sudo pacman-key --list-keys không trả về thông tin hữu ích nào. Khi đó keyring bị hỏng chứ không chỉ bị cũ, nên phải xây dựng lại.

sudo mv /etc/pacman.d/gnupg /etc/pacman.d/gnupg.broken
sudo pacman-key --init
sudo pacman-key --populate archlinux
sudo pacman -Sy archlinux-keyring
sudo pacman-key --populate archlinux

Hãy di chuyển thư mục cũ thay vì xóa nó. Nếu quá trình xây dựng lại gặp lỗi, bạn có thể khôi phục thư mục đó. Một keyring có thể khôi phục đáng giá hơn vài kilobyte dung lượng mà nó chiếm.

Thứ tự thực hiện rất quan trọng. --init tạo một keyring trống với signing key cục bộ mới. Keyring trống không tin cậy bất kỳ thứ gì, nên mọi lượt tải xuống tại thời điểm đó đều sẽ thất bại khi xác minh. --populate archlinux nạp keyring từ /usr/share/pacman/keyrings/archlinux.gpg, là file đã có trên máy từ package bạn cài đặt vài tháng trước. Các key đó có thể đã cũ, nhưng vẫn đủ để xác minh lượt tải package keyring hiện tại. Đây là việc dòng lệnh thứ tư thực hiện. Dòng cuối cùng nạp các file key mới mà lượt tải xuống vừa cung cấp.

Bây giờ hãy khôi phục key Omarchy. Việc xóa /etc/pacman.d/gnupg đã loại bỏ chữ ký cục bộ khiến key này được tin cậy, nên mọi package omarchy-* đều thất bại với unknown trust cho đến khi key được khôi phục:

sudo pacman-key --recv-keys 40DFB630FF42BCFFB047046CF0134EE680CAC571 --keyserver keys.openpgp.org
sudo pacman-key --lsign-key 40DFB630FF42BCFFB047046CF0134EE680CAC571
sudo pacman-key --list-keys 40DFB630FF42BCFFB047046CF0134EE680CAC571

Lệnh cuối cùng phải in ra một dòng pub cho fingerprint đó. Nếu thay vào đó xuất hiện dòng keyserver receive failed, nghĩa là dirmngr, helper mà gpg dùng cho network traffic đến keyserver, không thể tải key. Thường nguyên nhân là network của bạn chặn request. Một keys.openpgp.org đứng riêng, không có scheme phía trước, sẽ kết nối qua HKP thuần trên port 11371 thay vì 443, và một số network chặn port đó. Ghi --keyserver hkps://keys.openpgp.org sẽ gửi cùng request qua port 443. DNS resolver xử lý không đúng các truy vấn của dirmngr cũng tạo ra dòng tương tự, nên hãy kiểm tra DNS trước khi thử lại. Trên Omarchy 4, bạn có thể chạy omarchy update keyring thay cho 2 lệnh đầu tiên vì lệnh này thực hiện đúng cả 2 bước đó. Kết thúc bằng omarchy update.

Khi keyring hiện tại nhưng update vẫn thất bại

Clock bị sai. Key và chữ ký có timestamp, còn gpg sẽ so sánh chúng với clock của system. Nếu clock bị đặt lệch về quá khứ, một chữ ký hợp lệ có thể trông như được tạo trước khi key tồn tại, nên package bị từ chối. Chạy timedatectl và tìm System clock synchronized: yes. Lỗi này thường xảy ra trên laptop có pin CMOS đã hỏng. Trên server, nguyên nhân khác và được trình bày trong vì sao clock của VPS bị trôi và cách giữ đồng bộ.

Một file trong cache bị hỏng. File tải xuống bị mirror không ổn định cắt ngắn sẽ tạo ra cùng dòng invalid or corrupted package. Không cách xử lý keyring nào sửa được lỗi này. Hãy phân biệt hai trường hợp dựa vào package được nêu tên. Nếu lần nào cũng là cùng một package, hãy xóa file đó khỏi /var/cache/pacman/pkg/ rồi chạy update lại. sudo pacman -Sc sẽ xóa các phiên bản đã cache mà bạn không còn cài đặt.

Lỗi nằm trong yay, không phải pacman. Một bản build từ AUR sẽ xác minh archive source upstream bằng makepkg. Công cụ này đọc keyring của chính user tại ~/.gnupg. Nó không bao giờ đọc keyring của pacman. Thông báo lỗi là ==> ERROR: One or more PGP signatures could not be verified!, thường xuất hiện cạnh gpg: Can't check signature: No public key. Import key bằng user bình thường với gpg --recv-keys <key-id> và không dùng sudo. sudo pacman-key --recv-keys không giúp được, vì lệnh này ghi vào /etc/pacman.d/gnupg, trong khi makepkg không tìm key ở đó.

Bỏ qua pacman-key --refresh-keys. Lệnh này hỏi keyserver về mọi key bạn đã có, nên chạy chậm và sẽ thất bại hoàn toàn khi keyserver bận. Nó cũng không thể thêm key mà keyring của bạn chưa có, trong khi đó mới là vấn đề thực tế ở đây. Cập nhật archlinux-keyring là cách được hỗ trợ.

Nếu quá trình cập nhật đã dừng giữa chừng

Đọc /tmp/omarchy-update.log. Đây là nơi omarchy-update ghi output, và lỗi thực sự đầu tiên thường đã bị các thanh tiến trình đẩy lên khỏi màn hình khi bạn kiểm tra terminal.

Nếu hệ thống ở trạng thái tệ hơn lúc bắt đầu, hãy dùng snapshot. Omarchy tạo một snapshot trước khi cập nhật trên các hệ thống có snapper, vì vậy bạn có thể reboot và chọn snapshot trước khi cập nhật trong boot menu. Sửa keyring từ trạng thái đã biết là tốt đó, rồi cập nhật lại.

Máy chủ không phải máy desktop của bạn

Omarchy là một desktop, còn máy chủ bạn SSH vào là một bài toán khác với các cách xử lý khác. Máy chủ cần một distribution có thời gian hỗ trợ dài và không cài desktop stack bên trên. Đây là nội dung của chọn OS phù hợp cho VPS. Việc đầu tiên trên máy chủ đó là khóa SSH bằng key và harden cấu hình sshd. Việc thứ hai là duy trì quy trình bảo trì để package không bị stale như keyring này. Nếu điều bạn thích ở Omarchy là các shortcut cho coding agent tích hợp sẵn, những agent đó cũng chạy được trên server: chạy coding agent trên VPS hướng dẫn phần setup, còn duy trì Claude Code trong một tmux session hướng dẫn cách để tiến trình tiếp tục chạy khi bạn đóng laptop và rời đi.

FAQ

Chạy sudo pacman -Sy trước khi cài archlinux-keyring có an toàn không?

An toàn trong trường hợp này, nhưng chỉ khi bạn chạy ngay lệnh cài keyring, rồi full upgrade. -Sy làm mới package database trong khi các package đã cài vẫn ở phiên bản cũ. Cài software thông thường trong trạng thái đó là partial upgrade, có thể khiến một binary được link với phiên bản library không có trên máy. archlinux-keyring là data chứ không phải code được link, nên đây là ngoại lệ tiêu chuẩn. Không được dừng sau pacman -Sy rồi bỏ đó.

Tại sao tôi vẫn gặp lỗi keyring nếu Omarchy đã tự làm mới keyring?

Updater làm mới archlinux-keyring trước khi upgrade package. Vì vậy, lỗi này thường có nghĩa là bạn không chạy qua updater. Chạy pacman -Syu hoặc yay thủ công sẽ bỏ qua bước đó. Các trường hợp khác gồm keyring local bị hỏng chứ không chỉ cũ, khiến chính package keyring không thể được verify, hoặc bạn đang dùng một bản Omarchy cũ hơn, từ trước khi bước này tồn tại. Việc rebuild đầy đủ bằng pacman-key --init và pacman-key --populate archlinux xử lý được trường hợp keyring bị hỏng.

omarchy-keyring là gì, và nó có giống archlinux-keyring không?

Đây là 2 package khác nhau từ 2 nguồn khác nhau. archlinux-keyring là package của Arch, từ repository core, chứa các key của developer Arch và trusted user. omarchy-keyring là package bên thứ ba. Nó đến từ repository [omarchy] tại pkgs.omarchy.org, được Omarchy thêm vào cấu hình pacman, và chứa key có fingerprint 40DFB630FF42BCFFB047046CF0134EE680CAC571 để ký các package omarchy-*. Omarchy yêu cầu chữ ký hợp lệ từ cả 2 bộ key, nên mất một trong 2 bộ sẽ chặn update.

Tôi có nên chạy pacman-key --refresh-keys để sửa lỗi chữ ký không?

Không. Lệnh này truy vấn keyserver về mọi key trong keyring của bạn. Nó chạy chậm và sẽ fail khi không thể truy cập keyserver. Nó cũng không thể import một key chưa từng có trong keyring. Key bị thiếu được cung cấp cùng package archlinux-keyring, nên chạy sudo pacman -Sy rồi sudo pacman -S archlinux-keyring vừa nhanh hơn vừa là cách được hỗ trợ.

Tôi có thể cài Omarchy trên VPS để 2 máy có cùng cấu hình không?

Omarchy là desktop Hyprland dành cho máy có màn hình, GPU và keyboard ở phía trước. Trên VPS, bạn không có gì để hiển thị, nhưng vẫn phải duy trì một bộ desktop package lớn. Hãy chạy một server distribution trên VPS, giữ Omarchy trên laptop, và chấp nhận rằng 2 máy sẽ có các bộ package khác nhau cùng các lệnh update khác nhau.

Bài viết này có hữu ích không?

#omarchy#arch-linux#pacman#troubleshooting#updates