Tôi thích cách bạn có thể quản lý các phụ thuộc với các yêu cầu pip. Có cái gì đó tương tự trong trường hợp apt-get?Yêu cầu tệp cho apt-get, tương tự pip
http://www.pip-installer.org/en/latest/requirements.html#requirements-file-format
Tôi thích cách bạn có thể quản lý các phụ thuộc với các yêu cầu pip. Có cái gì đó tương tự trong trường hợp apt-get?Yêu cầu tệp cho apt-get, tương tự pip
http://www.pip-installer.org/en/latest/requirements.html#requirements-file-format
Câu hỏi của bạn là bạn muốn có một danh sách các sự phụ thuộc hệ thống trong một tập tin, để có thể cài đặt nó với một lệnh.
Tôi không khuyên bạn nên đưa phiên bản của gói vào phụ thuộc hệ thống. Trong các phụ thuộc hệ thống mềm như "xây dựng-cần thiết" hoặc "uuid-dev", bạn thường muốn có phiên bản mới nhất của gói. Trong "phụ thuộc cứng" như python, postgres hoặc bất cứ điều gì, thông thường phiên bản được chỉ định trong tên của gói chính nó, như "python2.6-dev" hoặc "postgresql-8.4". Một vấn đề khác bạn có thể đã xác định phiên bản chính xác của gói là có thể phiên bản 8.4.11-1 của postgresql-8.4 sẽ không có sẵn trong kho trong ba tháng hoặc trong một năm và bạn sẽ kết thúc cài đặt phiên bản hiện tại trong repo.
Ví dụ. Bạn có thể tạo tệp có tên "requirements.system" với gói hệ thống bạn cần cho bạn dự án:
python-virtualenv
python2.6-dev
uuid-dev
python-pip
postgresql-8.4
Sau đó, trong tệp INSTALL của bạn giải thích cách cài đặt gói hệ thống.
# Install system depencences by running
cat ~/project/install/requirements.system | xargs sudo aptitude install
Chúng tôi đã chạy cấu hình này trong khoảng hai năm, phải tái tạo môi trường từ scrach một vài lần và chúng tôi chưa bao giờ gặp sự cố.
Bạn cũng có thể thêm số phiên bản cho gói, theo cách tương tự như pip bằng cách sử dụng 'package_name = version' (' python-virtualenv = 1.7.1.2-1'). Tuy nhiên, nó có thể không hữu ích như với pip vì các máy nhân bản Debian không duy trì được nhiều phiên bản gói cũ hơn như kho lưu trữ PyPI. – C2H5OH
Đôi khi bạn muốn chỉ định phiên bản vì một số dpkg thực sự rất tệ. Tôi nhớ memecache hoặc tương tự như yêu cầu một số phiên bản lỗi thời hoặc nó sẽ không cài đặt. Đó là một trường hợp góc, vì vậy đôi khi đó là một điều tốt. Ngoài ra, nếu hệ thống của bạn được biết là tốt trong một trạng thái cụ thể, bạn muốn sao chép trạng thái đó. Nếu bạn cần mới nhất, quy trình triển khai chuẩn là bạn tạo một môi trường mới từ đầu bằng cách sử dụng các yêu cầu mà bạn chỉ định (nhưng với phiên bản mới nhất) và kiểm tra nó. – CppLearner
Không cần cho mèo: 'xargs apt-get install
Chúng tôi sử dụng định dạng aptfile tại nơi làm việc. Nó chỉ đơn giản là một wrapper bash với một số người giúp đỡ được xây dựng trong.
Bạn có thể đưa ra ví dụ về ý của bạn không? –
Bạn có nghĩa là phụ thuộc phiên bản không? Nếu có, câu trả lời là có. Không có trình quản lý gói nào hoàn tất nếu không có phụ thuộc phiên bản. – Dikei
Tôi có nghĩa là có một tệp requirements.txt để cài đặt các gói với số lượng lớn – Halst