Best practices for development in air-gapped terminal environments

For the use case of doing Rust development on air-gapped systems with a terminal interface are there any best practices that should be followed?

Some key challenges include:

  1. It seems there is no good way to view the documentation in the terminal as the documentation is designed for graphical rendering by a web browser (ref: Rustdoc: Render to text files? - community - The Rust Programming Language Forum (rust-lang.org))
  2. Creates need to be collected and staged locally. It seems there are a few options for this. (ref: Using Crates in offline environment - The Rust Programming Language Forum (rust-lang.org))
  3. The recommended rustup installation of Rust presumes Internet connectivity. I assume the documentation for manual installation can be used to define a procedure for staging the resources locally and then performing an install.

I have no advice on the air-gap specifically, but you can use a terminal web browser with the docs. There will be a little bit of noise but it is fairly readable overall. Give it a try and see if it works for you:

BROWSER=lynx cargo doc --open

lynx also has an option to non-interactively generate a text version of a page (lynx -dump <URL/path>) but I expect that will be much less usable since the generated docs are intended to be navigated by following hyperlinks, not linearly.

2 Likes

You will probably want to use one of the standalone installers: Other Installation Methods - Rust Forge These don't require internet access. You can also get the individual components. The full manifest with all it's download url's can be found at https://static.rust-lang.org/dist/channel-rust-stable.toml for the stable channel. This is what rustup uses for determining what to download too. To find the manifest files for the other release channels and for older stable releases see Release Channel Layout - Rust Forge.

1 Like

This topic was automatically closed 90 days after the last reply. We invite you to open a new topic if you have further questions or comments.