Suckless - Không cần root

20241206 #suckless

Cảnh báo

Đây là điều mình từng làm nhưng gần đây khi hiểu hơn về nguyên lý hoạt động của các phần mềm Suckless, mình không còn làm nữa. Mình khuyến cáo bạn chỉ đọc tham khảo cho vui thôi!

Lưu ý

Để đảm bảo bước này thành công, bạn phải chắc chắn rằng trong $PATH của mình có địa chỉ $HOME/.local/bin.

Mặc định khi cài đặt, các files sẽ được chuyển đến /usr/local, điều này đòi hỏi ta phải thực hiện các thao tác bằng root. Để tránh việc sử dụng root, ta có thể chuyển thư mục cài đặt thành $HOME/.local.

Trong file config.mk có một dòng như sau:

PREFIX = /usr/local

Để thay đổi vị trí cài vào $HOME/.local, bạn có thể dùng lệnh:

$ sed -i 's/^PREFIX =.*$/PREFIX = \/home\/$(shell whoami)\/.local/' config.mk

Lệnh sed này sẽ tìm trong file config.mk dòng bắt đầu bằng PREFIX = và thay cả dòng đó thành PREFIX = /home/$(shell whoami)/.local.

Khi bạn chạy lệnh make install, biến PREFIX được đặt, bên trong biến này có cụm $(shell whoami) sẽ dùng kết quả của lệnh whoami lấp vào chỗ đó.

Ghi chú

whoami là lệnh để tra cứu tên người dùng hiện tại.

Nghĩa là biến PREFIX lúc này sẽ là /home/<tên người dùng>/.local. Thế là xong, sau này mỗi lần cài đặt không cần phải dùng root nữa.


Bài viết liên quan