Làm cách nào để cung cấp các tham số cấu hình dpkg cho aptitude hoặc apt-get?


8

Khi cài đặt gitolite tôi thấy rằng:

# aptitude install gitolite
The following NEW packages will be installed:
  gitolite 
0 packages upgraded, 1 newly installed, 0 to remove and 29 not upgraded.
Need to get 114 kB of archives. After unpacking 348 kB will be used.
Get:1 http://security.debian.org/ squeeze/updates/main gitolite all 1.5.4-2+squeeze1 [114 kB]
Fetched 114 kB in 0s (202 kB/s)
Preconfiguring packages ...
Selecting previously deselected package gitolite.
(Reading database ... 30593 files and directories currently installed.)
Unpacking gitolite (from .../gitolite_1.5.4-2+squeeze1_all.deb) ...
Setting up gitolite (1.5.4-2+squeeze1) ...
No adminkey given - not initializing gitolite in /var/lib/gitolite.

Dòng cuối cùng là quan tâm đến tôi. Nếu tôi chạy, dpkg-reconfigure -plow gitolitetôi sẽ thấy một hộp thoại và có thể sửa đổi:

  • tên người dùng hệ thống cho gitolite,
  • vị trí của các kho chứa gitolite và
  • cung cấp pubkey quản trị.

Tôi muốn sử dụng gitngười dùng hệ thống và cung cấp pubkey quản trị khi cài đặt, nói điều gì đó tương tự:

# aptitude install gitolite --user git --admin-pubkey 'ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDAc7kCAi2WkvqpAL1fK1sIw6xjpatJ+Ms2nrwLJPhdovEY3MPZF7mtH+rv1CHFDn66fLGiWevOFp...'

Điều đó, tất nhiên, không hoạt động. Có thể làm một cái gì đó tương tự? Làm cách nào để xác định các tham số cấu hình trước thời hạn? Điều này sẽ rất hữu ích, ví dụ, khi cài đặt gitolite tự động, thông qua con rối hoặc đầu bếp.

Câu trả lời:


14

Tôi chưa thử nghiệm điều này, nhưng tôi tin rằng sau khi bạn chạy máy dpkg-reconfiguretrên ví dụ, bạn có thể chạy debconf-get-selections | egrep "^gitolite\s"để lấy những gì đã đặt. (nó nằm trong debconf-utilsgói nếu bạn không có nó).

Sau đó trên CLI, debconf-set-selections $FILENAMEtrước khi chạy apt.

Sau đó, với con rối, nó sẽ giống như:

file {
  "/var/cache/debconf/gitolite.preseed":
     source => '...'; # someplace with that output
}
package {
  "gitolite":
    require      => File["/var/cache/debconf/gitolite.preseed"],
    responsefile => "/var/cache/debconf/gitolite.preseed";
}

Thông tin thêm về trang web của con rối:

Tôi nghi ngờ Chef có một cơ chế tương tự để chỉ định tệp phản hồi hoặc tệp được chèn sẵn hoặc một cái gì đó tương tự, nhưng tôi không phải là người dùng Chef.


5

Bạn cần cung cấp một preseed để làm việc xung quanh này. Xem cách nó được thực hiện cho Java trong mô-đun này . Tôi thấy rằng cách dễ nhất để có được một tệp preseed là thực hiện cài đặt và cấu hình thủ công trước, sau đó lấy hạt giống từ đó. Blog này có một ví dụ tốt về điều này.

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.