2011-07-19 30 views
9

Tôi có một dự án nơi tôi tạo một tệp .deb duy nhất, nên được cài đặt bởi ứng dụng khách Linux. Đối với điều này tôi muốn sử dụng apt-get install mypackage.Cách dễ dàng để lưu trữ kho lưu trữ cập nhật debian

Hoàn toàn mới đối với lĩnh vực này, tôi hiện đang tìm cách lưu trữ bản cập nhật debian của riêng mình một cách đơn giản nhất, sẽ chỉ chứa mypackage.deb.

Tôi nhanh chóng xem xét mini-dinstall trông có vẻ hứa hẹn, nhưng chúng dường như hoạt động với .changes, thay vì gói .deb. Vì vậy, tôi không chắc chắn nếu đây là những gì tôi cần.

Vì vậy, tóm tắt các quy trình làm việc nên tìm một cái gì đó như thế này:

  1. tôi tạo ra các gói debian mypackage.deb
  2. tôi nói với một số daemon để cập nhật kho update: fancy-update-daemon add mypackage.deb
  3. Các khách hàng có thể cài đặt hoặc cập nhật bằng các lệnh apt chuẩn: apt-get install mypackage

Cảm ơn sự giúp đỡ của bạn

+0

askubuntu.com là nơi tốt nhất cho câu hỏi này – Charbel

Trả lời

13

Cách thực sự đơn giản để tạo kho lưu trữ là tạo kho lưu trữ "tầm thường" thay vì kho lưu trữ "tự động". Bạn có thể làm điều này với lệnh "dpkg-scanpackages" trong gói dpkg-dev.

$ mkdir repository 
$ cp foo.deb repository 
$ dpkg-scanpackages repository /dev/null | gzip -9c > repository/Packages.gz 

Sau đó, trong sources.list của bạn, thay vì có cái gì đó như:

deb http://wherever/repository suite component 

Bạn rời khỏi bộ và thành phần và chỉ có:

deb http://wherever/repository 

Để biết thêm thông (như sự khác biệt giữa một kho lưu trữ nhỏ và tự động) xem The repository HOWTO (đối với một cái gì đó đơn giản này, bạn có thể bỏ qua thực tế là tài liệu này tự gọi là "lỗi thời")

+0

Cảm ơn rất nhiều. Điều này có vẻ đầy hứa hẹn. Tôi đoán tôi cũng có thể quản lý các phiên bản khác nhau của cùng một gói với cơ chế này. Tôi chắc chắn sẽ dùng thử. – Besi

+3

dpkg-scanpackage sẽ không đặt nhiều phiên bản của cùng một gói vào cùng một tệp gói, nếu đó là ý của bạn. Nếu bạn cung cấp cho nó một thư mục có nhiều phiên bản của cùng một gói, bạn sẽ chỉ kết thúc với các gói mới nhất trong gói.gif – stew

+2

@stew trong các phiên bản gần đây, bạn có thể cung cấp cho dpkg-scanpackage công tắc '-m' để thêm nhiều các phiên bản của cùng một gói cho Gói. –

0

.changes tệp được tạo trong khi tạo gói debian. Tệp .changes không phải là một gói của chính nó: nó chứa thông tin về bản dựng (including .debs that were generated).

Trong khi tôi chưa sử dụng mini-dinstall, có vẻ như đó là cách phù hợp để thực hiện. Nó nên sử dụng các tệp .deb được tạo trong quá trình xây dựng và tải chúng lên một cách chính xác.

2

Tạo Packages.gz:

@server> cd debian-repo 
@server> dpkg-scanpackages ./ /dev/null | gzip > Packages.gz 

Tạo /etc/apt/sources.list.d/my-server.list tập tin mới (ở client)

deb http://my-server/debian-repo ./ 

Bây giờ có được danh sách các gói sẵn có và cài đặt foo.

@client> apt-get update 
@client> apt-get install foo 
Các vấn đề liên quan