← All tasks
pythonaws/aws-cli #4842Not a task: not reproduced

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.
Continue on GitHub ↗

04 / LABELS

Labels from the report text only; not yet run

No supported category has been assigned.

Label rules and the text that matched
[]