aws / aws/aws-cli

A plain tar.gz archive should be made available for downloading and packaging for Linux/*NIX

Open
#4,842 7 comments 12 reactions 0 assignees View on GitHub
feature-request installation p2 v2
Dominant language
Python
Stars
17.3k
Forks
4.6k
Avg merge
1d 2h
Merged PRs (30d)
13

Description

Please make a (signed, with checksums) .tar.gz or similar archive available for Linux/*NIX distributions instead of (or, at least, as well as) the command-line installer. I have several reasons for requesting this:

1. Maintenance of an installation script is error-prone and time-consuming.
1. Many distributions (or O/S) have different ways of packaging software for clean installation and removal. Package maintainers are the experts.
1. It avoids trouble with [sudo pip](https://github.com/aws/aws-cli/issues/4175), clobbering PyPI with [download requests](https://github.com/aws/aws-cli/issues/4278), [large Docker images](https://github.com/aws/aws-cli/issues/3553) and the associated complexity of passing through user data from the host. A Docker image I built `FROM` `ubuntu:18.04` was [185MB](https://hub.docker.com/repository/docker/morancj/aws-cli-v2). The Arch package is 69MB.
1. Predicatable version installation. For example, the download URL returns `2.0.0dev3`: a few days ago, it was giving `2.0.0dev2`.
1. A clear view of dependencies: for example, the Ubuntu image mentioned previously needs `groff` and `less` persistently installed in order to use the `help` commands.

As an example, when packaging your code for Arch Linux, I've had to run operations like this:

```
package() {
./aws/install -i "${pkgdir}/opt/${pkgname}" -b "${pkgdir}/tmp"
rm -fr "${pkgdir}/tmp"
cd "${pkgdir}"
mkdir -p "${pkgdir}/usr/bin"
ln -s "/opt/${pkgname}/v2/current/bin/aws2" "${pkgdir}/usr/bin/aws2"
ln -s "/opt/${pkgname}/v2/current/bin/aws2_completer" "${pkgdir}/usr/bin/aws2_completer"
cd "${pkgdir}/opt/aws-cli-v2/v2"
rm -fr "${pkgdir}/opt/aws-cli-v2/v2/current"
ln -s "${pkgver}" "${pkgdir}/opt/aws-cli-v2/v2/current"
}
```

You can see how I have to remove your symlinks and re-create them in the fakeroot to get correct paths.

Please see similar arguments e.g. [here](https://drewdevault.com/2019/12/09/Developers-shouldnt-distribute.html) and various other places around the WWW.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.