https://github.com/reitzig/sdkman-equivs
A collection of dummy Debian packages providing packages installed with SDKMAN!
https://github.com/reitzig/sdkman-equivs
debian debian-packages dpkg equivs sdkman ubuntu
Last synced: about 1 month ago
JSON representation
A collection of dummy Debian packages providing packages installed with SDKMAN!
- Host: GitHub
- URL: https://github.com/reitzig/sdkman-equivs
- Owner: reitzig
- License: unlicense
- Created: 2019-01-04T10:38:16.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2019-06-23T20:13:18.000Z (almost 7 years ago)
- Last Synced: 2025-10-08T20:23:20.204Z (9 months ago)
- Topics: debian, debian-packages, dpkg, equivs, sdkman, ubuntu
- Language: Shell
- Size: 9.77 KB
- Stars: 0
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
SDKs installed by [SDKMAN!](https://sdkman.io) do not fulfill dependencies of any packages
installed through `dpkg`/`apt`.
This can be resolved by installing dummy packages that provide the corresponding Debian packages.
### Usage
```
equivs-build java-11-open
sudo dpkg -i sdkman-java-11-open_1.0_all.deb
```
### Caveats
1. Binaries installed with SDKMAN! are not in `PATH` per se;
only after its initialization has run.
Therefore, programs relying on the provided packages may fail
if not run from a (compatible) shell.
Possible workaround: add symlinks to actual binaries to the package.
2. The provided Debian packages, e.g. `openjdk-11-jre-headless`,
provide a whole slew of packages. Since provides are not recursive,
these have all to be listed again -- despite not being really correct!
(A Java 11 JRE can't properly double as a Java 7 JRE.)
3. SDKMAN! may not provide exactly the same things as the corresponding packages.
Compare `ls .sdkman/candidates/java/11.0.1-open/bin/` with the lists of files
in
[openjdk-11-jdk-headless](https://packages.ubuntu.com/bionic/amd64/openjdk-11-jdk-headless/filelist)
and
[openjdk-11-jre-headless](https://packages.ubuntu.com/bionic/amd64/openjdk-11-jre-headless/filelist),
for instance.
4. The dummy packages have no dependencies; the assumption is that developers
know what they are doing and ensure a working installation beforehand.
5. The binary versions in the SDKMAN! candidate and the replaced repository package
may be (wildly) different. Software that depends on the provided package but
requires a specific version may fail.
6. The pre-install script is a _very_ crude check. As long as any user on the current machine has
installed a matching candidate, the script will succeed (despite the SDK not being available
for all users).