Khắc phục nhanh: vì bạn đã có bộ chính xác $PATH
trong môi trường của mình (thông qua các /etc/profile
sử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 PATH
biến trong môi trường của tlmgr
nó thực thi, vì vậy nó chạy với giá trị $PATH
bạ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 .bashrc
tệ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