Làm cách nào để cài đặt nhiều phiên bản của cùng một gói trong Gentoo?


9

Tôi muốn cài đặt hai (hoặc nhiều) phiên bản của cùng một gói trên hệ thống Gentoo của mình. Tôi biết chắc chắn sẽ không có bất kỳ xung đột tệp nào, vì có rất ít tệp được cài đặt và mỗi tệp được đặt tên theo phiên bản.

Tôi biết về các vị trí, nhưng chúng được chỉ định trong các tệp ebuild và giả sử tôi không muốn chỉnh sửa bất kỳ tệp ebuild nào vì nhiều lý do.

Tôi muốn các phiên bản đã cài đặt là một phần của gói thế giới, vì vậy chúng có thể được cài đặt lại hoặc gỡ cài đặt như bình thường.

Có cách nào để cài đặt nhiều phiên bản của cùng một gói không? Bạn có biết một số thủ thuật Portage để đạt được điều đó?


Đó là những gì các khe dành cho. Nếu gói không có rãnh thì điều duy nhất tôi có thể nghĩ đến là tạo lớp phủ cá nhân và gói / ebuild mới được tạo rãnh.
Keith

@Keith - Đó là câu trả lời đúng, tại sao không đăng nó dưới dạng câu trả lời?
HedgeMage

@Keith: Nếu đó thực sự là cách duy nhất để làm điều đó, thì hãy đăng nó dưới dạng câu trả lời và tôi sẽ sẵn sàng chấp nhận nó.
Laurent Pireyn

Câu trả lời:


9

Đó là những gì các khe dành cho. Nếu gói không có rãnh thì điều duy nhất tôi có thể nghĩ đến là tạo lớp phủ cá nhân và gói / ebuild mới được tạo rãnh.


2
Một chút gợi ý hướng tới một cách thuộc về thực hành sử dụng khe cắm sẽ giúp người mới :)
Stefano

1

Tôi nghĩ trên lý thuyết bạn có thể làm điều gì đó ngớ ngẩn như:

$ ROOT=~/package-1.0 emerge =package-1

Nhưng về cơ bản, tất cả các công cụ không lớp phủ đều chịu một số hạn chế và yêu cầu bổ sung về việc không có nhiều thông tin.


1

Những gì bạn có thể thử (Tôi không chắc nó có hoạt động như mong đợi không) là sử dụng /etc/portage/envđể đặt SLOT của các phiên bản gói cụ thể. Nó có thể không hoạt động vì bộ nhớ đệm siêu dữ liệu mặc dù. Ngay cả khi nó hoạt động, đây là một mối quan hệ và có thể dẫn đến hành vi không mong muốn. Như mọi khi, nếu nó vỡ, bạn có thể giữ các mảnh.


1

Đây là một câu hỏi cũ, nhưng vẫn còn hiệu lực và không ai đề xuất cách tiếp cận đơn giản sau:

Nếu bạn không muốn tạo các vị trí và bạn biết các tệp không va chạm, chỉ cần tạo một ebuild mới trong lớp phủ cục bộ của bạn (sau khi đặt lớp phủ cục bộ lên trong make.conf) và đặt tên khác. Có lẽ một cái gì đó như 'mypkg.ebuild'. Không có luật quy định tên ebuild và các tệp mà nó cài đặt phải chia sẻ cùng tên. Sao chép tệp pkg.ebuild của portage sang /usr/local/portage/app- class / mypkg-newversion.ebuild, thực hiện các thay đổi cần thiết cho phiên bản mới, ebuild và xuất hiện nó.

Hãy nhớ rằng bạn sẽ không thể sử dụng một số tên biến được xác định trước ($ {P} et al) khi tìm nạp các nguồn.


0

Một điều tiềm năng khác để khám phá là Tiền tố Gentoo

Đây có thể là một sự thay thế khả thi nếu bạn không ngại duy trì 2 hệ sinh thái Gentoo để cung cấp gói "thay thế".

Điều này về cơ bản là tạo ra một "không gian con" cho một phạm vi dự án nhất định, và sau đó sử dụng Gentoo khác nhau trong phạm vi dự á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.