Làm cách nào để xóa tất cả các gói ngôn ngữ tôi không cần


11

Tôi chỉ nhận thấy rằng trong /usr/share/helptôi có các tệp trợ giúp Ubuntu với 70 ngôn ngữ khác nhau. Tôi chỉ nói được 2, và tôi chỉ thực sự tính toán trong một. Tôi cũng nhận thấy rằng nó chứa đầy các liên kết tượng trưng bị hỏng đến / usr / share / help-langpack.

Tôi muốn chỉ muốn loại bỏ tất cả các ngôn ngữ tôi không cần. Làm thế nào tôi có thể làm điều này mà không có được tất cả rm -rhạnh phúc? Tôi tốt nhất là tìm cách để làm điều này mà không cần cài đặt bất kỳ gói mới nào, vì mục tiêu chính của tôi là loại bỏ những thứ dư thừa trên máy của tôi. Tôi muốn tìm cách làm điều này tốt nhất với dpkg hoặc apt.


1
Các liên kết tượng trưng này là một phần của thiết lập với mục đích tránh cài đặt các tệp trợ giúp bằng tất cả các ngôn ngữ trên tất cả các máy. Vì vậy, có, có khá nhiều liên kết 'bị hỏng', nhưng điều đó tốt hơn các tệp trợ giúp, phải không? Lời khuyên của tôi: Đừng bận tâm. Các liên kết tượng trưng thuộc về các gói khác nhau và nếu bạn loại bỏ chúng, chúng sẽ xuất hiện lại vào lần tiếp theo gói tương ứng được cập nhật.
Gunnar Hjalmarsson

Câu trả lời:


10


Bạn có thể kiểm tra các địa điểm nào được tạo và định cấu hình trên hệ thống của mình bằng lệnh ngôn ngữ:

  • miền địa phương ... liệt kê cấu hình miền địa phương hiện tại
  • ngôn ngữ -a ... liệt kê tất cả các địa điểm được tạo trên hệ thống của bạn
  • locale -a -v ... liệt kê tất cả các ngôn ngữ và hiển thị thông tin bổ sung hữu ích (chẳng hạn như tên thư mục chứa tệp dữ liệu thông tin miền địa phương)

Lệnh cuối cùng ở trên cho bạn thấy rằng tất cả các địa điểm được tạo đều nằm trong đó /usr/lib/locale/, bạn có thể xóa bất kỳ vị trí nào trong số chúng nếu không cần thiết. Mỗi gói thông tin miền địa phương là một thư mục chứa các tệp văn bản và các thư mục khác.

Tất cả các địa điểm mà bạn muốn hệ thống của bạn hỗ trợ được liệt kê trong các tệp văn bản trong /var/lib/locales/supported.d/. Các tệp này có hai cột, thẻ ngôn ngữ và bản đồ ký tự.

Tôi muốn hệ thống của mình chỉ biết tiếng Anh-Mỹ, vì vậy tôi chỉ có một tệp ở đó, được gọi là en, chỉ chứa một dòng duy nhất:

en_US UTF-8

Thông
báo lỗi Nếu thông báo lỗi được hiển thị khi ban hành lệnh ngôn ngữ, ví dụ:

locale: Cannot set LC_ALL to default locale: No such file or directory

đảm bảo tệp /etc/default/localetồn tại và có nội dung phù hợp, chẳng hạn như:

LANG="en_US"
LANGUAGE="en_US:en"

Loại bỏ dữ liệu miền địa phương không cần thiết - Từng bước

Bây giờ chúng tôi biết tất cả các chi tiết cần thiết để bắt đầu với việc làm sạch thông tin ngôn ngữ hệ thống của chúng tôi:

  1. Chỉnh sửa (các) tệp ngôn ngữ trong /var/lib/locales/supported.d/và xóa tất cả các ngôn ngữ không cần thiết (một ngôn ngữ trên mỗi dòng)
  2. Tạo và chỉnh sửa /etc/default/locale(xem ví dụ ở trên)
  3. Xóa tất cả dữ liệu miền địa phương được tạo: rm -rfv /usr/lib/locale/*
  4. Tạo lại địa phương mới: locale-gen

Đó là tất cả! Khởi động lại máy của bạn để làm cho những thay đổi của bạn có hiệu lực. Sau đó chạy một hoặc nhiều ví dụ lệnh miền địa phương từ phía trên để đảm bảo rằng kết quả như mong đợi.

~# locale
LANG=en_US.UTF-8
LANGUAGE=en_US:en
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=
~# 
~# locale -a -v
locale: en_US.utf8      directory: /usr/lib/locale/en_US.utf8
-------------------------------------------------------------------------------
    title | English locale for the USA
   source | Free Software Foundation, Inc.
  address | 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
    email | bug-glibc-locales@gnu.org
 language | English
territory | USA
 revision | 1.0
     date | 2000-06-24
  codeset | UTF-8

Có một gói cho Debian / Ubuntu có thể loại bỏ các tệp liên quan đến ngôn ngữ và miền địa phương (ví dụ: trang man) : localepurge. Bạn có thể cài đặt / chạy nó phát hành:

sudo apt-get install localepurge

Sau khi cài đặt, bạn nên chạy nó:

dpkg --configure localepurge

để đảm bảo cài đặt ngôn ngữ của bạn được đặt chính xác.

để chạy thủ công sau khi cài đặt (mặc dù bạn không thực sự cần thiết vì nó sẽ chạy sau mỗi lần dpkgchạy tự động), bạn chỉ có thể thực hiện:

sudo localepurge

Đọc trang người đàn ông trước khi sử dụng nó, mặc dù. Nếu bạn có thể hoàn thành công việc của mình mà không có nó thì có lẽ an toàn hơn để cho đi.

từ diễn đàn này

ref:
1. LocaleConf trên tài liệu chính thức
2. Linux man page
3. Locale on wikipeadia
4. man localepurge


Cảm ơn lời đề nghị, nếu tôi không thể tìm ra cách để làm điều này với những gì đã được cài đặt trên máy tính của tôi, tôi chắc chắn sẽ sử dụng nó.
quilt_cat

1
@jackech Tại sao bạn không cài đặt nó, chạy nó và gỡ cài đặt nó. Không chắc chắn tại sao tầm nhìn của bạn về việc cài đặt một gói.
Brian Graham

1
@knotech xem tài liệu chính thức help.ubuntu.com/community/LocaleConf .
2014

Xin lỗi, nhưng tôi không nghĩ rằng localpurge giải quyết các câu hỏi của OP theo bất kỳ cách nào.
Gunnar Hjalmarsson

1
OP đã hỏi về các gói ngôn ngữ ... Nhưng giả sử rằng anh ta cũng quan tâm đến việc loại bỏ các ngôn ngữ dư thừa, tại sao lại cài đặt localpurge? Tại sao không chỉ locale-gen --purge?
Gunnar Hjalmarsson

3

Như liên quan ngôn ngữ thực sự cài đặt, đi đến System Settings -> Hỗ trợ Ngôn ngữ và nhấp vào Install / Remove Ngôn ngữ ... nút. Sau đó bỏ chọn các ngôn ngữ bạn không cần.

Liên quan đến các liên kết trong /usr/share/help, xin vui lòng xem nhận xét của tôi về câu hỏi của bạn.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.