Chia sẻ các thư viện đã cài đặt giữa Debian và Ubuntu


19

Tôi đang cố gắng phân vùng ổ cứng của mình và cài đặt Ubuntu và Debian. Vì vậy, tôi không có nhu cầu không cần phải lưu giữ bất kỳ dữ liệu cũ nào. Phiên bản mới nhất của cả hai HĐH sẽ được sử dụng.

Tôi đang cố gắng hiểu làm thế nào tôi có thể cài đặt thư viện, chương trình, v.v. thông qua apt trong Ubuntu và không cài đặt lại nó trên Debian và ngược lại. Ở đây, tôi giả sử mọi thứ hoạt động cho Ubuntu sẽ hoạt động với Debian và hy vọng ngược lại.

Tôi biết tôi có thể chia sẻ / nhà. Nhưng, đó không phải là nơi mà phần lớn các lib / chương trình sẽ ở đó. Tôi có nên đặt / usr trên một phân vùng khác và mount / usr trên cả hai hệ điều hành không? Hoặc có lẽ tôi chỉ cần gắn kết / usr / local? Hoặc có một cách tốt hơn để làm điều đó?


11
Giả định của bạn là sai.
Anwar

10
Giả định của bạn là RẤT sai.
Rinzwind

4
Hmmm, câu hỏi này nhận được phiếu bầu làm tôi bối rối. Đó không phải là một câu hỏi chính đáng chứa đầy hy vọng và tưởng tượng không tưởng của tất cả các biến thể debian chia sẻ nhị phân (rốt cuộc đó là cùng một máy tính có cùng kiến ​​trúc)?
dev_nut

4
Upvote là của tôi. Tôi coi đó là một câu hỏi chính đáng. Không phải ai cũng có kinh nghiệm như vậy. Và nếu không ai hỏi những câu hỏi kiểu này thì chúng ta sẽ ở đâu?
Rinzwind

1
Nâng cao bởi vì nó là một câu hỏi hợp pháp và không phải là tất cả những câu hỏi thiếu kinh nghiệm.
Jos

Câu trả lời:


16

Hoặc có một cách tốt hơn để làm điều đó?

  • Cài đặt tất cả phần mềm bạn sử dụng như snaps.
  • Cài đặt tất cả phần mềm bạn sử dụng trong một phân vùng có tên /opt/. Đó có thể là một cài đặt nguồn ( tar.gz).

Hai phương pháp cài đặt này có thể được chia sẻ giữa các bản phân phối. Cái cuối cùng bạn sẽ cần thêm một cái gì đó vào PATH hoặc sao chép một dịch vụ vào hệ thống chính.

Bạn không thể chia sẻ / usr / hoặc / var / giữa 2 cài đặt khác nhau. Bạn có thể chia sẻ / usr / local / mặc dù. 2 bản phân phối có thể có các phiên bản thư viện khác nhau, vì vậy bạn có thể cần cài đặt một vài thư viện trên một trong hai hệ thống đó. Nhưng vài kb bạn tiết kiệm không xứng đáng với thời gian bạn sẽ dành cho việc này. Thêm vào đó bạn có khả năng vẫn sẽ phá vỡ một trong hai hệ thống.


Câu trả lời này thực sự cố gắng cho tôi một số giải pháp. Khi bạn nói bạn không nên chia sẻ / usr, tôi không nên làm điều đó ngay cả với các phiên bản ubfox tương tự?
dev_nut

@dev_nut Bạn không nên chia sẻ /usr/*giữa hai hệ thống; bạn có thể chia sẻ /usr/local/*giữa hai mặc dù bạn vẫn có nguy cơ phần mềm 'cục bộ' không tương thích giữa hai bản phát hành ở một mức độ nào đó. (vì vậy các fstabquy tắc của bạn sẽ /usr/local/*được gắn trên một số phân vùng khác và sau đó sẽ được chia sẻ trong cả hai)
Thomas Ward

1
@dev_nut điều là. 2 phiên bản phần mềm khác nhau trong 2 hệ điều hành sẽ khiến một trong số chúng bị sập. Bên cạnh đó: có thể có sự khác biệt giữa chúng trong thiết lập cho người dùng mặc định làm rối tung mọi thứ (người dùng đang ở / etc / password) Có cùng một người dùng với UID và GUID khác nhau sẽ là một vấn đề.
Rinzwind

11

Một điều bạn không bao giờ làm là trộn các kho lưu trữ Debian và Ubuntu, thư viện hệ thống, chương trình, v.v ... Nó sẽ phá vỡ ồ ạt cả hai hệ thống. (Điều này cũng kéo dài đến trộn Ubuntu và các biến thể phi chính thức như Mint; và trong khi bạn về mặt lý thuyết có thể trộn Kubuntu và Ubuntu cho ví dụ về 16,04, bạn chỉ nên không và nên giữ cho hệ thống cốt lõi của họ tách).

Ubuntu đang trong chu kỳ phát hành nhanh hơn nhiều với các thư viện phần mềm được cập nhật nhiều hơn so với Debian. Điều ngược lại cũng đúng - Debian không có thư viện cập nhật, v.v.

Trộn và kết hợp sẽ làm nổ tung các hệ thống. Đây là lý do tại sao bạn không chia sẻ thư viện với nhau.

Làm như vậy sẽ phá vỡ cả hai hệ thống. Không thử và chia sẻ thư viện và chương trình giữa hai hệ thống.

Mặc dù về mặt kỹ thuật bạn có thể chia sẻ các thư mục nhà của người dùng qua các bản phát hành và bản phân phối, bạn có thể gặp sự cố kỳ lạ trên một hoặc nhiều HĐH do các phiên bản cấu hình khác nhau bởi các phiên bản phần mềm khác nhau trên mỗi hệ thống.


3

Một điểm nữa tôi muốn thêm vào câu trả lời hiện tại là khoảng aptdpkg, và cách họ xử lý các thông tin về phần mềm được cài đặt.

dpkg , là ứng dụng quản lý gói lõi, sử dụng /var/lib/dpkg/statustệp để lưu trữ và truy xuất thông tin về các gói debian được cài đặt trong một hệ thống. Điều này rất cụ thể về việc chạy của bạn. Ngay cả một mục duy nhất có thể làm rối tung toàn bộ điều quản lý gói.

Ví dụ, bạn đã 3.18cài đặt phiên bản nautilustrong Ubuntu. Sau đó, nếu bạn chia sẻ thông tin này, debian sẽ thấy nó có 3.18cho nautilus, ngay cả khi nó thực sự có 3.16. Đây là ví dụ rất đơn giản. Nhưng có thể phức tạp hơn. Ví dụ, debian có thể thấy rằng bạn có các gói được cài đặt từ kho lưu trữ không tồn tại mà không có lý do chính đáng và sẽ cố gắng loại bỏ chúng và ngược lại.

Câu trả lời của Rinzwind đã minh họa một cách đơn giản để giải quyết vấn đề với ứng dụng thông thường, ví dụ như sử dụng các ứng dụng độc lập được phân phối dưới dạng các gói snap hoặc phẳng. Đây không phải là thư viện chia sẻ nhưng nếu bạn muốn một cái gì đó của ứng dụng phổ biến có thể hoàn thành mục tiêu 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.