Tùy chỉnh ebuild trong Gentoo trong cây portage


7

Làm cách nào tôi có thể tùy chỉnh một ebuild trong Gentoo mà không cần duy trì gói tùy chỉnh trong lớp phủ riêng?

Trường hợp là tôi cần đánh dấu nhị phân biên dịch với paxctl. Nhưng có khoảng 100 gói như vậy và tôi không muốn tự mình xem các bản cập nhật trong lớp phủ cục bộ.

Portbu ebuilds không được biên dịch mà không có đánh dấu như vậy. Bây giờ tôi phải thay đổi cờ biên dịch của họ trong /etc/portage/package.envthư mục. Đánh dấu PAX là một giải pháp tốt hơn nhưng tôi không biết làm thế nào trong Gentoo trong cây portage.

Câu trả lời:


4

Sử dụng portage bạn có thể làm điều này với package.env. Nơi thích hợp để tìm tài liệu là http://dev.gentoo.org/~zmedico/portage/doc/portage.html#config-bashrc-ebuild-phase-hooks . Về cơ bản cách bạn sử dụng nó như sau. Trước tiên, bạn tạo (giả sử thiết lập tiêu chuẩn mà không tùy chỉnh ROOT) một tập tin /etc/portage/env. Ví dụ: bạn có thể tạo một tệp/etc/portage/env/paxmark

#paxmark

#Set this to what you need it to be
PAXFLAGS="-p"

post_src_install() {
  find "${INSTALL}" -type x -print0 |xargs -0 -n 1 paxctl $PAXFLAGS
}

Sau đó, đối với tất cả các gói bạn muốn áp dụng cho bạn, hãy thêm một mục vào /etc/portage/package.env:

#package.env example for paxmark
sys-apps/gcc paxmark

Điều này sẽ áp dụng paxmarktập lệnh cho gói đã chỉ định. Ngoài ra, bạn cũng có thể tạo một /etc/portage/bashrctập lệnh cho ghi đè toàn cầu (rất cẩn thận với điều đó).

Mặc dù vậy, một cảnh báo chung là bạn có thể thêm móc trước và sau vào tất cả các pha, điều này có thể nguy hiểm. Hãy cẩn thận với những gì bạn làm vì tất cả các gói sử dụng hook của bạn giờ đã trở nên mạnh mẽ hơn so với tập lệnh hook của bạn. (Ví dụ trên để đánh dấu pax sẽ ổn).


1
Cảm ơn đã cho một câu trả lời. Sẽ rất hữu ích nếu bạn có thể cung cấp thêm các bước cho câu trả lời của mình.
Ramesh

Tôi đã cập nhật câu hỏi. Hy vọng điều này sẽ giúp nhiều hơn.
Paul de Vrieze

Cách này gây ra một ngoại lệ portage trong trường hợp của tôi. Tôi đã mở một câu hỏi mới
Uroc327

1

Nếu bạn chuyển sang Paludis , một trình quản lý gói thay thế cho Gentoo (nghĩa là thay thế cho emerge), có lẽ bạn có thể thiết lập một hook để thực hiện điều đó.


Có thể paludislàm việc với catalyst?
trupanka

Tôi không biết. Tôi chưa bao giờ thử catalyst.
cjm
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.