Netflix / aminator

A tool for creating EBS AMIs. This tool currently works for CentOS/RedHat Linux images and is intended to run on an EC2 instance.
Apache License 2.0
950 stars 170 forks source link

Use -f instead of --fix-missing to install the dependencies for the target package #204

Closed tzakrajs closed 10 years ago

tzakrajs commented 10 years ago

I understand that running "apt-get install -y --fix-missing" was intended to fix dependencies that were not installed during the dpkg install, however, --fix-missing is not working in this capacity. Instead I offer the use of '-f' which has gotten me some mileage in facilitating the install of the missing dependencies along with the package that required them. Feel free to shoot me down; I am curious to know if I may be using aminator incorrectly for installing package dependencies.

cloudbees-pull-request-builder commented 10 years ago

aminator-pull-requests #182 SUCCESS This pull request looks good

tzakrajs commented 10 years ago

Looks like this was already fixed by coryb some time ago: https://github.com/coryb/aminator/commit/d58c8736fcd86104e933af514ad980ba59ba5bac

tzakrajs commented 10 years ago

Regression was here: https://github.com/Netflix/aminator/commit/44258fe8abeb9c57229dee5f84372f67479b7297

Looks like a code paste knocked out this change.

coryb commented 10 years ago

Hey, I intentionally removed the -f in favor of the --fix-missing. The trouble we ran into with -f is that it would sometimes "fix" things by completely removing the package previously installed by dpkg in the case where it could not resolve dependencies for some reason. I am not sure of a case where --fix-missing wont work, but -f will and still leave the package installed. In any case we generally use the aptitude provisioner which basically replaces the apt-get install --fix-missing with "aptitude hold $pkg" which will try to resolve the best way possible. Aptitude seems to be working better for us because it can handle dependencies on older versions as long as they are available in the repo metadata.

-Cory