3 ms·
Is there a way to apt-get the new JDK 17 as a package on Ubuntu, instead of piping a shell script from curl or unzipping a tar? Does anybody use package manager
by nlitened 5y ago
Is there a way to apt-get the new JDK 17 as a package on Ubuntu, instead of piping a shell script from curl or unzipping a tar? Does anybody use package managers on Linux anymore?
- needusername 5y agoGetting Java through apt-get gives you more or less the worst quality builds https://mail.openjdk.java.net/pipermail/jdk8u-dev/2019-May/009330.html https://mail.openjdk.java.net/pipermail/jdk8u-dev/2019-May/0... You get mystery bits that haven't been put through the TCK.
- nlitened 5y agoI think a custom package repository could be a proper solution then. This way one would get version upgrades for free. Much better than installing (curl-piping) yet another package management tool `sdkman` with a new syntax. Though, I might be missing some important details, and I would love to understand it better. Edit: a sibling comment suggested that now there's a package repository for that, and indeed there is.
- severino 5y agoLast time I checked, at least in Ubuntu 20.04, there was already a package for OpenJDK 17, so I think that's the straightforward and recommended way to get Java 17 in Ubuntu.
- nlitened 5y agoWow, you're actually right — I wasn't able to find it before (maybe Java 17 was too new back then). If anybody's interested: sudo add-apt-repository ppa:linuxuprising/java sudo apt-get update sudo apt-get install oracle-java17-installer oracle-java17-set-default
- severino 5y agoYes, I checked some weeks ago and v.16 was the last one, so I guess it was too soon. However, you don't need a special repo for getting OpenJDK 17. Yours is for getting Oracle JDK 17, right?
- Freak_NL 5y agoI don't like the 'curl -s "https://XXX https://XXX" | bash' approach much either, but I've given up trying to work around it. With SDKMan switching between JDKs is painless, despite the install method of SDKMan itself being one of those. But it's not just Java. To build our frontend webapp I need NodeJS, and there too some specific version depending on the version of the webapp or just because we've updated. I'd love to be able to just apt install all of this, but the downsides are just too many.
- KronisLV 5y agoPersonally, i just use containers to manage business applications - which often need a very particular runtime that's tested, verified and signed off on for maximum stability and predictable deployments. On the other hand, i only use standard packages through apt/yum/apk/whatever for server software, a distinction that's lost too often in my opinion. Everything that the server needs to operate should have automatic (at least security) updates enabled and ideally the configuration should be fully automated through Ansible with something like GitOps and read only access through SSH (with fallback account with write access for special cases) for maximum auditability and being sure that this is less likely to happen: https://dougseven.com/2014/04/17/knightmare-a-devops-cautionary-tale/ https://dougseven.com/2014/04/17/knightmare-a-devops-caution... Furthermore, the servers themselves can be viewed as pretty much disposable at that point. A VM gets corrupted? Wipe it, create a new one, run Ansible against it to set up the environment, then just give the node a label in your container orchestration platform of choice and watch as your business software is automatically provisioned on the node, bringing the total capacity of your cluster up once again. For personal devices with no important credentials, or development boxes which are similarly unimportant, piping random stuff and trying to work around the problems with multiple SDKs is more permissible, however. Seeing as PHP, Ruby, Go, Java, .NET, Python and other technologies aren't always pleasant to work with if you have different projects that need different environments, as humorously pointed out here: https://xkcd.com/1987/ https://xkcd.com/1987/ Containers aren't always comfortable to use for local development (especially with OSes like Windows locally, without WSL2, due to problems with bind mounts but perhaps are for components like DBs, Redis, MongoDB etc.), but in certain dev boxes they are also viable, thus making development even easier.