Khắc phục nhanh: vì bạn đã có bộ chính xác $PATHtrong môi trường của mình (thông qua các /etc/profilesửa đổi), bạn có thể sử dụng:
sudo env PATH="$PATH" tlmgr
Về cơ bản, sudo đặt lại giá trị của
$PATH(toàn bộ môi trường, thực sự) thành một "hàng hóa đã biết", và do đó bỏ qua mọi thay đổi bạn đã thực hiện đối với môi trường địa phương. Lệnh
env ở trên thiết lập PATHbiến trong môi trường của tlmgrnó thực thi, vì vậy nó chạy với giá trị $PATHbạn chỉ định trên dòng lệnh.
Để tránh nhập tất cả các lệnh cho mỗi lệnh TeXlive, bạn có thể xác định
bí danh trong trình bao của mình: thêm dòng sau vào .bashrctệp trong nhà của bạn:
alias psudo='sudo env PATH="$PATH"'
và sau đó bạn có thể chỉ cần đưa ra điều này tại một dấu nhắc lệnh:
psudo tlmgr
Ngoài ra, sudo không chạy shell đăng nhập để thực thi lệnh, đó là lý do tại sao các thủ thuật "profile.d" của bạn không hoạt động cho root. Bạn có thể buộc
sudo thực thi một lệnh trong shell, đây là một cách khác để đạt được hiệu quả tương tự:
sudo sh -l -c tlmgr
Một lần nữa, bạn có thể định nghĩa một bí danh lệnh shell để rút ngắn điều này:
alias shsudo='sudo sh -l -c'
có thể được sử dụng như:
shsudo tlmgr