Tôi đã gặp phải điều này một vài lần khi cài đặt ứng dụng từ nguồn và trong quá trình hack thỉnh thoảng xảy ra update-alternatives
. Cho đến nay, đó chỉ là một sự phiền toái nhỏ (nghĩa là không cản trở mục tiêu cuối cùng) nhưng bây giờ nó là một sự thất vọng khi nó chỉ ra một lỗ hổng trong cơ sở tri thức của tôi ... vì vậy khi tôi nhận được một tin nhắn ' foo 'là "không phải là một ứng dụng đã đăng ký" (hoặc tôi không thể sử dụng biểu tượng mặc định của foo vì Ubuntu không có kiến thức về' foo '):
Điều gì định nghĩa một "ứng dụng đã đăng ký"?
Làm cách nào tôi có thể xác định một ứng dụng được cài đặt từ nguồn (và có thể nằm trong $ HOME / bin / tên ứng dụng) sao cho nó đóng gói chức năng giống như một gói được cài đặt từ .deb? (nếu giải pháp không rõ ràng từ câu 1)
Thí dụ:
Tôi tải về và giải nén dev hàng ngày xây dựng của sublime-text-2
để /home/tom/bin/sublime-text-2
. Tôi đã tạo tệp * .desktop với các phím tắt phù hợp, v.v. Nhưng biểu tượng cho sự siêu phàm không thể hiển thị trong bất kỳ trình khởi chạy nào ngay cả khi tôi cung cấp tên đường dẫn đầy đủ cho tùy chọn. Giải pháp là cài đặt một thể hiện siêu phàm thứ 2 từ gói deb.
Khi tôi cài đặt sublime-text-2 từ gói .deb, nó sẽ cài đặt bên dưới /usr/bin && /usr/lib
, tệp .desktop đã cài đặt được lưu trữ bên dưới /usr/share/applications
và dòng có liên quan sẽ đọc : icon=sublime_text
.
Liên kết tôi đang thiếu ở đâu? Bằng cách nào đó Ubuntu biết cách chính xác biểu tượng từ sublime_text
cái sau, nhưng không phải cái trước (một lần nữa, ngay cả với một đường dẫn đầy đủ được cung cấp).
/.local/share/applications
. Nơi đáng chú ý nhất mà tôi có thể nhớ thông báo "ứng dụng đã đăng ký" là khi cố gắng ghép một phiên bản vim từ nguồn được biên dịch vào update-alternatives
danh sách để nó xuất hiện thay vì cài đặt 'mặc định'. Hữu ích? Đoán xem điều tôi đang tìm kiếm là cơ chế cung cấp cho Ubuntu kiến thức về nơi tìm (ví dụ) biểu tượng chính xác cho ứng dụng A - giống như với các tệp * .desktop bên dưới /usr/share/applications/
.
~/.local/share/applications
trình khởi chạy của mình thành sublime_text
( không phải là đường dẫn đầy đủ, thì nó có hoạt động không?