Someone else may be able to comment on what might be done to fool JetPack into working on 16.04. Meanwhile, if you are interested, you can manually extract parts of JetPack, and then copy over to the Jetson (such as through scp).
If you run this on the host, JetPack will unpack files…because you were able to run this already (just not doing what you wanted), then this first step may not even be needed (it’s to unpack files):
bash ./JetPack-L4T-2.3.1-linux-x64.run --noexec
# You can now exit Chooser...previous runs may have already done what this would achieve.
There should now be file “repository.json”. This file contains the URLs which can be downloaded (I use wget) and copied over to the Jetson. Notice that this is a human-readable file, and that because Jetson can install packages to a TK1, a TX1, a TX2, or even an x86_64 host, that you need to pay attention to get only the TX2 files. One file in particular would be the starting point…that’s the CUDA repo info applicable to arm64 architecture and Ubuntu 16.04 (current L4T for both TX1 and TX2 are Ubuntu 16.04…this does not refer to the host). With this CUDA can be installed (which is a requirement for most other things) and the local repo will become available on the Jetson (I think TX1 and TX2 use the same CUDA though). For example, this is what I used to get CUDA on TX2:
wget <a target='_blank' rel='noopener noreferrer' href='http://developer.download.nvidia.com/devzone/devcenter/mobile/jetpack_l4t/006/linux-x64/nv-gie-repo-ubuntu1604-6-rc-cuda8.0_1.0.2-1_arm64.deb'>http://developer.download.nvidia.com/devzone/devcenter/mobile/jetpack_l4t/006/linux-x64/nv-gie-repo-ubuntu1604-6-rc-cuda8.0_1.0.2-1_arm64.deb</a>
Copy this over to the Jetson (scp for example), and install using sudo dpkg. Run “sudp apt update”. Now you can search for and install anything from the local CUDA repo, including CUDA. Other packages should correctly resolve dependencies since you have a repo and not just an individual file.