Arch Linux: Thủ thuật, xử lý lỗi, vấn đề người dùng cuối

Nội dung của bài viết nêu những vấn đề, thủ thuật khi sử dụng Arch Linux, mang tính chất ghi chép hơn là bài viết. Khi nào có thời gian mình sẽ sắp xếp và biên tập lại nội dung cho phù hợp.

Lỗi libdbusmenu

Khi cập nhật hệ thống, có thông báo thay thế gói libdbusmenu bằng gói libdbusmenu-glib tuy nhiên khi cài đặt bạn sẽ gặp thông báo lỗi tập tin đã có. Để khắc phục cần thêm --force vào câu lệnh

# pacman -Su --force

Như vậy việc cập nhật có thể tiến hành bình thường, tuy nhiên do libdbusmenu bị ghi đè và thay thế cưỡng bức cho nên bạn sẽ gặp lỗi sau trong Terminal

file owned by ‘libdbusmenu’ and ‘libdbusmenu-glib’

Xử lý nó cũng rất đơn giản:

# pacman -R libdbusmenu

Convert file ảnh với nền trong suốt (Convert images with transparent background)

$ convert  -transparent white save-all.svg SaveAll.bmp

Lỗi ICE default IO error handler

Thực ra lỗi này không quá thường xuyên gặp, đôi khi nó xảy ra mà bạn không biết, trong log bạn sẽ thấy thông báo:
ICE default IO error handler doing an exit(), pid = xxxx, errno = xxx
Nguyên nhân chính là tập tin ~/.ICEauthory bị lỗi (kể cả trong thư mục /root), bạn chỉ cần xóa nó đi để hệ thống tự tạo lại là được.
(Tôi thường dính lỗi này khi convert định dạng sách bằng Calibre)

Phần mềm mới cài được chọn làm mặc định cho định dạng tập tin thường dùng

Nhiều lúc sau khi cài phần mềm mới nó tự động thay thế các định dạng thường dùng với các phần mềm quen thuộc bởi nó, điều này gây ra khá nhiều khó chịu và bực mình vì từ giờ bạn phải mở bằng nhiều thao tác hơn. Để chuyển nó về mặc định thì phải chỉnh từng định dạng tập tin theo ý mình. Để giải quyết vấn đề có thể điều chỉnh bằng Gnome Control CenterSystem > Details > Default Applications đối với GNOME, MIME Type Editor tại Settings > MIME Type Editor đối với XFCE… Tuy nhiên các điều chỉnh này vẫn mang tính thay đổi thuộc tính chứ không phải là thiết lập mặc định. Để thiết lập mặc định cần can thiệp vào tập tin cấu hình.

Formal path Usually defined as Usage
$XDG_CONFIG_HOME/$desktop-mimeapps.list $HOME/.config/$desktop-mimeapps.list user overrides, desktop-specific
$XDG_CONFIG_HOME/mimeapps.list $HOME/.config/mimeapps.list user overrides
$XDG_CONFIG_DIRS/$desktop-mimeapps.list /etc/xdg/$desktop-mimeapps.list sysadmin and vendor overrides, desktop-specific
$XDG_CONFIG_DIRS/mimeapps.list /etc/xdg/mimeapps.list sysadmin and vendor overrides
$XDG_DATA_HOME/applications/$desktop-mimeapps.list $HOME/.local/share/applications/$desktop-mimeapps.list for compatibility but now deprecated, desktop-specific
$XDG_DATA_HOME/applications/mimeapps.list $HOME/.local/share/applications/mimeapps.list for compatibility but now deprecated
$XDG_DATA_DIRS/applications/$desktop-mimeapps.list /usr/local/share/applications/$desktop-mimeapps.list and /usr/share/applications/$desktop-mimeapps.list distribution-provided defaults, desktop-specific
$XDG_DATA_DIRS/applications/mimeapps.list /usr/local/share/applications/mimeapps.list and /usr/share/applications/mimeapps.list distribution-provided defaults

Trong đó quan trọng và ảnh hưởng nhất là tập tin /usr/local/share/applications/mimeapps.list/usr/share/applications/mimeapps.list

Hiển thị thông tin hệ thống theo thời gian thực ở tty12

Systemd cho phép hiển thị (forward) thông tin hệ thống dmesg theo thời gian thực tại một phiên làm việc riêng, điều này rất tiện vì có thể gỡ lỗi ngay mà không cần phải đọc file log.
Sửa tập tin /etc/systemd/journald.conf

ForwardToConsole=yes
TTYPath=/dev/tty12
MaxLevelConsole=info

sau đó khởi động lại dịch vụ

# systemctl restart systemd-journald

chuyển sang tty12 bằng ctrl + alt + F12

Khắc phục lỗi do tumbler tạo thumbnail các loại tập tin liên tục

Nếu không có nhu cầu xem thumbnail (thường thì mình dùng GThumb) trực tiếp trong các phần mềm quản lý tập tin như Nautilus, Thunar … thì có thể gỡ hẳn gói tumbler cho nhẹ nợ.

# pacman -Rscn tumbler

nếu không có thể cấu hình các định dạng sẽ tạo thumbnail ở /etc/xdg/tumbler/tumbler.rc như PDF, RAW, Video …

Nhận, gắn các thiết bị Android như các thiết bị lưu trữ

Các thiết bị Android mới sử dụng giao thức Media Transfer Protocol (thường dùng trong các máy nghe nhạc MP3) để gửi/nhận các tập tin. Mặc định thì Arch Linux không nhận biết được các thiết bị này khi cắm vào. Để nhận biết và tự động gắn các thiết bị Android 3+ như các thiết bị lưu trữ thông thường (ổ di động USB) cần cài thêm gói gvfs-mtpgvfs-gphoto2

Kiểm tra thời gian các dịch vụ khởi chạy khi bắt đầu boot hệ thống

systemd cho phép chúng ta liệt kê danh sách các dịch vụ khởi chạy khi bắt đầu boot hệ thống theo danh sách từ cao đến thấp, với kết quả này ta có thể điều chỉnh, loại bỏ các dịch vụ không cần thiết hoặc yêu cầu nó chỉ chạy sau một dịch vụ nào đó nhằm giảm thời gian khởi động hệ thống xuống tối thiểu.

$ sudo systemd-analyze blame

Tổng thời gian khởi động hệ thống bao gồm nhân hệ điều hành và các dịch vụ bổ xung

$ sudo systemd-analyze

Lỗi không chuyển, tạo thùng rác khi xóa tập tin trên XFCE4

Khi xóa tập tin bằng nút Del thì gặp lỗi Unable to find or create trash directory còn khi xóa bằng Shift + Del thì không bị do trên các phân vùng ổ cứng không có thư mục .Trash-$USER_ID hoặc không được phân quyền đúng. Để khắc phục nó ta tạo các thư mục tương ứng trên từng phân vùng và gán quyền cho tài khoản người dùng.

$ mkdir -p /.Trash-$UID/{expunged,files,info}
$ chown -R $USER /.Trash-$UID

Khác biệt giữa PARTUUID và UUID

Cả 2 loại định danh này đều là một chỉ số riêng và duy nhất cho mỗi phân vùng của ổ đĩa trên hệ thống. Điểm khác biệt lớn nhất giữa 2 chỉ số này là PARTUUID chỉ có trên các ổ đĩa phân vùng theo định dạng GPT còn UUID dùng để định danh cho các định dạng của phân vùng như fat, ntfs, ext … Cái lợi lớn nhất khi sử dụng là PARTUUID không thay đổi ngay cả khi bạn format lại phân vùng đó (chia lại phân vùng sẽ thay đổi) trong khi UUID sẽ thay đổi nếu bạn chuyển định dạng hoặc format lại nó.

Lỗi FAILED (unknown public key 1EB2638FF56C0C53) khi build các gói

Lỗi này xảy ra khi build gói cower, cụ thể

==> Verifying source file signatures with gpg...
    cower-12.tar.gz ... FAILED (unknown public key 1EB2638FF56C0C53)
==> ERROR: One or more PGP signatures could not be verified!

Mặc dù lỗi này rất đơn giản nhưng khá nhiều người bối rối vì key này không có sẵn trong keyring nên có một số lệnh để đánh dấu nó là tin cậy đều không có tác dụng. Giải pháp là lấy key này về từ máy chủ chứa key trước;

$ gpg --recv-key <KEYID>
$ gpg --lsign <KEYID>

Tính năng phóng to cửa số trên XFCE4

Tính năng này rất hiếm khi sử dụng, thậm chí bản thân mình không biết (có thể là chưa đến lúc dùng), nó dễ xảy ra với trường hợp dùng chuột ngoài, giữ nút Alt và xoay nút Cuộn trang.
Mặc dù ít tác dụng nhưng nếu lỡ bấm nhầm thì rất khó chịu.

Sửa lỗi SSH key trên máy chủ bị thay đổi

Thông thường lần đầu tiên kết nối với máy chủ bằng SSH, bạn sẽ được hỏi thêm khóa (key) vào cơ sở dữ liệu để so sánh. Vì một lý do nào đó mà key này thay đổi nhưng hệ thống quản lý theo IP nên khi kết nối so sánh 2 khóa không trùng nhau nên sẽ bị báo lỗi:

Warning: the ECDSA host key for ‘NARGGA server’ differs from the key for the IP address ‘192.168.1.1’

Để khắc phục lỗi này cần xóa lưu tạm của khóa này trong CSDL và thêm lại là xong

$ ssh-keygen -R 192.168.1.1;

Cập nhật

  • 2014.07.09: Bổ xung tùy chỉnh các phần mềm mở định dạng mặc định
  • 2014.07.11: Khắc phục lỗi của Tumbler
  • 2014.07.24: Nhận, gắn các thiết bị Android như các thiết bị lưu trữ
  • 2014.09.04: Kiểm tra thời gian các dịch vụ khởi chạy khi bắt đầu boot hệ thống
  • 2014.10.10: Tạo thư mục thùng rác để chuyển các tập tin chờ xóa hẳn
  • 2015.03.10: Khác biệt giữa PARTUUID và UUID