Skip to content

Automatic dependency parsing of dse-full package. #77

@mlococo

Description

@mlococo

The dependency-resolver for the apt tools don't make it easy to install old versions of metapackages (as documented at http://docs.datastax.com/en/datastax_enterprise/4.6/datastax_enterprise/install/installPrevious.html).

sudo apt-get install -y dse-full=4.6.1-1 fails if 4.6.1-1 isn't the latest version available in the repository. apt-get tries to install the latest version of deps, even though dse-full requires it's deps to version-match itself exactly.

The workaround is to specify all the deps and versions in a single apt-get install call, like so:

sudo apt-get install -y dse-full=4.6.1-1 dse=4.6.1-1 dse-demos=4.6.1-1 dse-hive=4.6.1-1 dse-libcassandra=4.6.1-1 dse-libhadoop=4.6.1-1 dse-libhive=4.6.1-1 dse-libpig=4.6.1-1 dse-pig=4.6.1-1 dse-liblog4j=4.6.1-1 dse-libsolr=4.6.1-1 dse-libsqoop=4.6.1-1 dse-libtomcat=4.6.1-1 dse-libmahout=4.6.1-1 dse-libhadoop-native=4.6.1-1

We currently hardcode the package list in the ami code:

install_list = 'sudo apt-get install -y dse-full={0} dse={0} dse-demos={0} dse-hive={0} dse-libcassandra={0} dse-libhadoop={0} dse-libhive={0} dse-libpig={0} dse-pig={0}'

It would be better to run apt-cache depends dse-full=version or apt-cache show dse-full=version and parse the dependencies out of that output rather than hard-code it and have to update every version and add custom logic if the package-list changes.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions