Offline package installation with download URL via Artifacts.toml

Hello All,

I have some questions for installation package offline environments.
First, I can get package jl folder through Git using PC that can use Internet and I moved the folder to offline system then I installed successfully.
But the thing I have been struggling is installation of the package that requires external library such as Bzip2.tgz using downloading artifact.

Here is my command and errors.

cmd: pkg > add $DIR/Bzip2_jll.jl
result and err:
Updating git-repo ‘$DIR/Bzip2_jll.jl’
Resolving package versions…
Downloading artifact: Bzip2
ERROR: Unable to automatically install ‘Bzip2’ from ‘.julia/packages/Bzip2_jll/CRt5T/Artifacts.toml’

The error occurs at download_artifact(hash, url, tarball_hash ~) in /julia/stdlib/v1.5/Pkg/src/Artifacts.jl.
Installation script use the url in Artifacts.toml to download tarball(Bzip2.v1.0.6.x86_64-linux-gnu.tar.gz) but the system cannot access the url because of offline.

At this situation, How can I install the package that require external libraries?
I can download the tarball itself, but I don’t know that how to make the installation script use them.

In theory, I’m thinking of getting rid of the download syntax and copying the tarballs from the local directory instead, or maybe downloading the tarballs from the local directory instead of the url. To try the second method, I replaced the url in artifacts.toml with a local directory address instead of github, but the same error occurred. What commands (eg curl, wget) do julia use to download?

Please let me know if you have any ideas to fix this issue.

Best regards,
Kihang

1 Like

Perhaps this works: Overrides.toml