Không khuyến nghị APT với con rối


8

Tôi sử dụng con rối để quản lý một loạt các máy chủ Debian tại nơi làm việc, một phần nếu bao gồm các gói cài đặt. Một gói tôi cài đặt trên một số hệ thống là nmap được sử dụng để xác minh rằng các quy tắc tường lửa được thiết lập đúng. Trên Debian 7.0, nếu bạn đã bật APT :: Install-recommends, bạn sẽ nhận được cả đống crap cùng với nmap (xem bên dưới).

Tôi không muốn tất cả các crap cài đặt nmap với đề xuất được kích hoạt kèm theo. Một giải pháp sẽ là cập nhật cấu hình apt của tôi với APT::Install-Recommends "0";. Nhưng tôi không muốn có cái này làm mặc định. Phần lớn thời gian tôi muốn giới thiệu bao gồm. Các gói được đề xuất hầu hết đều ổn và tôi không nhận được vô số thứ tôi không cần. Nhưng có một vài gói mang lại nghĩ rằng tôi không muốn / cần.

  package { 'nmap':
    ensure => installed,
    require => Class['apt'],
  }

Có phương pháp nào để kiểm soát nếu đề xuất được cài đặt qua con rối khi sử dụng nhà cung cấp gói 'apt' không? Tôi không muốn gây rối với nhà cung cấp năng khiếu vì apt và aptitude không hoàn toàn tương thích với nhau.

Với khuyến nghị

root@fw-01:~# apt-get install nmap
Reading package lists... Done
Building dependency tree       
Reading state information... Done
... 
The following NEW packages will be installed:
  fonts-droid fonts-liberation ghostscript gnuplot gnuplot-nox groff gsfonts
  imagemagick imagemagick-common libblas3 libblas3gf libcroco3 libcupsimage2
  libdjvulibre-text libdjvulibre21 libexiv2-12 libgfortran3 libgs9
  libgs9-common libijs-0.35 libilmbase6 libjbig2dec0 liblcms1 liblcms2-2
  liblensfun-data litesting firewall blensfun0 liblinear-tools liblinear1 liblqr-1-0
  libmagickcore5 libmagickcore5-extra libmagickwand5 libnetpbm10 libopenexr6
  libpaper-utils libpaper1 librsvg2-2 librsvg2-common libsvm-tools libwmf0.2-7
  netpbm nmap poppler-data psutils ufraw-batch
0 upgraded, 45 newly installed, 0 to remove and 0 not upgraded.
Need to get 32.0 MB of archives.
After this operation, 93.8 MB of additional disk space will be used.
Do you want to continue [Y/n]? 

Không có khuyến nghị

root@fw-01:~# apt-get --no-install-recommends install nmap
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following extra packages will be installed:
  libblas3 libblas3gf libgfortran3 liblinear1
Suggested packages:
  liblinear-dev
Recommended packages:
  liblinear-tools
The following NEW packages will be installed:
  libblas3 libblas3gf libgfortran3 liblinear1 nmap
0 upgraded, 5 newly installed, 0 to remove and 0 not upgraded.
Need to get 4,405 kB of archives.
After this operation, 17.4 MB of additional disk space will be used.
Do you want to continue [Y/n]?

Đã đến lúc nhìn vào aptlớp học đó .
Michael Hampton


@MichaelHampton, các lớp apt apt đảm bảo rằng APT được cấu hình để sử dụng kho lưu trữ nội bộ của tôi. Nó không thay đổi bất cứ điều gì liên quan đến Khuyến nghị.
Zoredache

@Zoredache Xem thêm: serverfault.com/q/280405dự
Shane Madden

Câu trả lời:


10

Điều này hiện có thể thực hiện thông qua cài đặt "install_options" trong loại 'gói' của Puppet: http://docs.puppetlabs.com/references/latest/type.html#package-attribution-install_options

Ví dụ:

package { 'nmap':
  ensure          => installed,
  install_options => ['--no-install-recommends'],
}

Ở trên đảm bảo tùy chọn "--no-install-recommends" được truyền cho apt-get, bỏ qua các gói được đề xuất chỉ cho cài đặt này: http : //manpages.ub Ubuntu.com/manpages/precise/man8/apt-get .8.html


3

Tôi đã tìm thấy các giải pháp sau đây cho đến nay, nhưng chúng không lý tưởng.

Đợi cho đến khi một bản vá được thêm gần đây làm cho nó trở thành phiên bản phát hành và nâng cấp.

  • PRO: đây là cách đúng đắn
  • CON: Tôi phải đợi hoặc vá cục bộ thiết lập của mình.

Đơn giản chỉ cần sử dụng một exec để cài đặt thay vì gói và sử dụng một exec.

  • PRO: đơn giản để làm nếu bạn không lo lắng về việc kiểm tra lỗi.
  • CON: Cần một dòng lệnh khá phức tạp để cài đặt, không tự động nâng cấp và xử lý một cách duyên dáng các lỗi cài đặt.

Toàn cầu cập nhật cấu hình apt của tôi và dành thời gian để tìm tất cả những thứ còn thiếu và điều chỉnh bảng kê khai của tôi để cài đặt các gói tôi muốn chỉ được cài đặt bằng cách được khuyến nghị.

  • PRO: bảng kê khai của tôi cụ thể hơn và phản ánh chính xác hơn trạng thái của một hệ thống
  • CON: Việc sửa các bảng kê khai / cấu hình của tôi để phản ánh thực tế mới này sẽ tốn một lượng thời gian / công sức không hề nhỏ.

Đặt biến môi trường APT_CONFIG trước khi chạy con rối.

  • PRO: dễ cài đặt, nếu bạn đang sử dụng con rối khởi tạo cron
  • PRO: không thay đổi hành vi cho bất kỳ việc sử dụng apt thủ công
  • CON: dễ quên cài đặt nó khi chạy thủ công APT cho mục đích thử nghiệm.
  • CON: bạn phải sửa tất cả các bảng kê khai, giống như nếu bạn cập nhật cấu hình toàn cầu.

2
Làm thế nào về việc viết một nhà cung cấp tùy chỉnh bằng cách sử dụng nhà cung cấp apt làm cha mẹ và thêm các cờ cần thiết ở đó? Hoặc là hoặc viết một bảng kê khai để người điều khiển rối thực hiện lệnh vá trừ khi có bằng chứng đã được áp dụng.
Mike Renfro

@MikeRenfro không phải là vấn đề, nhưng tôi không quen thuộc với ruby.
Zoredache
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.