A plain tar.gz archive should be made available for downloading and packaging for Linux/*NIX
envgap__aws__aws-cli-4842
01 / FAILURE SIGNATURE
As reported upstream
1. Maintenance of an installation script is error-prone and time-consuming.
Not a benchmark task.
- In a clean container the reported failure did not reproduce, or the known fix did not make the project run.
02 / ENVIRONMENT RECIPE
- Base commit
a8a340a78e3d5b3a236a6103b8cac6d0b4475923- Manifest
setup.cfg- Reproduce
Awaiting issue-specific recipe- Run under trace
Awaiting a meaningful runtime command
03 / ORIGINAL ISSUE TEXT
aws/aws-cli #4842 · read the original issue
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.04 / LABELS
Labels from the report text only; not yet run
No supported category has been assigned.
Label rules and the text that matched
[]