Trong Gentoo, sự khác biệt giữa amd64, ~ amd64 và ~ amd64-linux là gì?


9

Khi tôi chạy equery depgraph www-client/chromium-10.0.648.151, không phải tất cả các phụ thuộc đều có sẵn. Một số chương trình M[package.mask], trong khi một số chương trình khác [missing keyword]. Của tôi ACCEPT_KEYWORDS~amd64-linux, theo emerge --info. Tôi đã thử nghiệm với khác nhau ACCEPT_KEYWORDS(như một biến môi trường được truyền vào eqeury) và tất cả đều có các phụ thuộc bị thiếu khác nhau. Trong số tất cả các kết hợp có thể, chỉ với ACCEPT_KEYWORDS='amd64 ~amd64 ~amd64-linux'tất cả các phụ thuộc có thể được thỏa mãn cùng một lúc.

Đây là câu hỏi của tôi:

  1. ACCEPT_KEYWORDS='amd64 ~amd64 ~amd64-linux'một cấu hình hợp lệ?
  2. Tôi đã học được từ các tài liệu amd64có nghĩa là ổn định, và ~amd64có nghĩa là không ổn định. Thế còn ~amd64-linux?
  3. Nếu tôi chọn ~amd64, equerysẽ không sử dụng các gói chỉ có sẵn amd64, dẫn đến thiếu phụ thuộc. Đây có phải là mong đợi? Nếu vậy, người kiểm tra không ổn định nên sử dụng ít nhất ACCEPT_KEYWORDS='amd64 ~amd64'thay vì ACCEPT_KEYWORDS='~amd64'?
  4. Liệu thứ tự của các từ khóa có vấn đề?

Thông tin bổ sung: Tôi đã cài đặt Gentoo Prefix theo hướng dẫn này . Theo mặc định, $EPREFIX/etc/make.profilelà một liên kết tượng trưng đến $EPREFIX/usr/portage/profiles/prefix/linux/amd64và chứa một make.defaultscái có ACCEPT_KEYWORDS="-amd64 ~amd64-linux". Không $EPREFIX/etc/make.confphải cũng không $EPREFIX/etc/make.globalsACCEPT_KEYWORDScấu hình. Theo eselect profile list, không có hồ sơ được chọn.

Câu trả lời:


8

1. ACCEPT_KEYWORDS = 'amd64 ~ amd64 ~ amd64-linux' có phải là cấu hình hợp lệ không?

Từ người đàn ông make.conf:

ACCEPT_KEYWORDS = [danh sách TỪ KHÓA được phân tách bằng dấu cách]

Vậy ACCEPT_KEYWORDS='amd64 ~amd64 ~amd64-linux'là một sự kết hợp hợp lệ.

2. Thế còn ~ amd64-linux?

amd64-linuxlà một điều Tiền tố. Tôi không biết nhiều về Tiền tố, nhưng tôi có thể thấy amd64-linuxtrong danh sách các từ khóa hợp lệ tại /usr/portage/profiles/arch.list, trong phần có tên "Từ khóa tiền tố". ~amd64-linuxchỉ là đối tác thử nghiệm của amd64-linux.

3. ACCEPT_KEYWORDS='amd64 ~amd64'so với chỉ~amd64

Nếu bạn có ~amd64trong bạn ACCEPT_KEYWORDS, portage sẽ sử dụng tất cả các ebuild mới nhất, mà thường chứa rất nhiều thứ không ổn định. Tôi nghĩ đó là lý do tại sao thiếu phụ thuộc sẽ được dự kiến. Ví dụ, điều đó có thể xảy ra nếu bạn muốn cài đặt software-a, và cái mới nhất trong nhánh thử nghiệm là software-a-2.3.4, yêu cầu library-b-5.6.7, chưa có ebuild. Về amd64 ~amd64và chỉ ~amd64, họ đều giống nhau, thực sự, bởi vì nếu kiến trúc của bạn là amd64 bạn sẽ có amd64trong ACCEPT_KEYWORDS, không có vấn đề gì.

4. Thứ tự của các từ khóa có vấn đề?

Không, bởi vì đó chỉ là vấn đề liệu ACCEPT_KEYWORDSbiến của bạn có chứa một từ khóa nhất định hay không. Nó giống như một bộ (không có thứ tự).

Đã sử dụng Gentoo được một thời gian, tôi vẫn không dám cho ~amd64vào ACCEPT_KEYWORDS. Nó không ổn định nên thực sự không được khuyến khích, lần đầu tiên thiết lập nó sẽ đảm bảo rất nhiều sự cố.


cảm ơn vì lời giải thích rất rõ ràng trong trường hợp của tôi, tôi vẫn phải đưa vào ~ amd64 để có bản mới nhất xtables-addons. nhưng vì hộp Gentoo của tôi hoạt động như một tường lửa thuần túy, tôi không thực sự quan tâm đến sự ổn định của các gói khác :)
pepoluan

2
@pepoluan Nếu ~amd64chỉ để có xtables-addonsthì bạn nên đặt nó vào /etc/portage/package.keywordshoặc /etc/portage/package.accept_keywordsthay vì sử dụng nhánh thử nghiệm không ổn định. Để biết thêm thông tin tham khảo man portage, hoặc hỏi ở đây trong một câu hỏi khác.
phunehehe

. gosh, bạn nói đúng> <... Tôi xin lỗi, có vẻ như n00bness tôi tỏa sáng qua: P ... anyways, tôi không phải là poster ban đầu, chỉ cần một commenter bướng bỉnh :)
pepoluan

@pepoluan Vui mừng vì tôi đã giúp. Mọi người đều là một người mới vào một lúc nào đó :)
phunehehe

Cảm ơn câu trả lời chi tiết của bạn. Tôi không hiểu tại sao nhưng từ khóa mặc định là ~amd64-linux(với amd64loại bỏ rõ ràng). Cho đến nay nó vẫn chạy tốt =)
netvope

3

Biến môi trường ACCEPT_KEYWORDS là để cho phép "tất cả" các gói / phiên bản ổn định chưa được đánh dấu cho kiến ​​trúc hiện tại được xây dựng.

~ Ở phía trước của một vòm có nghĩa là không ổn định (không "hoàn toàn" được thử nghiệm).

Cách tiếp cận thường tốt hơn là sử dụng /etc/portage/package.keywords và liệt kê gói trong đó với từ khóa ~ amd64 nếu bạn thực sự cần bản dựng mới nhất.

Nhân tiện: tường lửa amd64, đó không phải là cách wikipedia định nghĩa quá mức?

  1. Đúng
  2. Chưa bao giờ nghe nói về "~ amd64-linux", nhưng ~ có nghĩa là "không ổn định".
  3. Không, dự kiến ​​"~ amd64" không bao gồm "amd64".
  4. Không.
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.