# GNU Radio on Air Gapped Computer

**URL:** <https://www.ruby-forum.com/t/gnu-radio-on-air-gapped-computer/241775>\
**Category:** GNU Radio\
**Created:** [April 29, 2015, 7:28pm UTC](https://www.ruby-forum.com/t/gnu-radio-on-air-gapped-computer/241775 "2015-04-29T19:28:34Z")\
**Posts on this page:** 12\
**Page:** 1

<div class="post-metadata">

**Author:** ![musicdenotation](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/ea666f/32.png) [@musicdenotation](https://www.ruby-forum.com/u/musicdenotation)\
**Post date:** [April 29, 2015, 7:28pm UTC](https://www.ruby-forum.com/t/gnu-radio-on-air-gapped-computer/241775/1 "2015-04-29T19:28:34Z")

</div>

I originally installed GNU Radio on this computer when it was networked  
via  
pybombs. Since then, the computer has become air gapped (no internet  
connection allowed). I need to update the install to the latest versions  
of  
UHD and GNU Radio. Two questions:

1. Is there a way that would allow me to use pybombs to update from a  
dvd?  
If so, how would I create this dvd and then point pybombs to it?

2. Should I forget the original pybombs install and start over with a  
dvd  
containing all files needed to install the latest version. If so, how do  
I  
make this dvd?

v/r,  
Rich

---

<div class="post-metadata">

**Author:** ![reback](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/b5ac83/32.png) [@reback](https://www.ruby-forum.com/u/reback)\
**Post date:** [April 29, 2015, 7:48pm UTC](https://www.ruby-forum.com/t/gnu-radio-on-air-gapped-computer/241775/2 "2015-04-29T19:48:27Z")

</div>

Hi Richard,

1. depends. Many of the things that pybombs does actually consist of  
calling your distro’s package manager. So if you can do that with a DVD  
source, you’re set (I remember this being relatively easy on debian,  
with a DVD actually being a remote just like debian’s repo servers are);  
for the things you build from source: well, you can always just edit all  
recipes involved and change the URLs to something locally served, I  
guess 🙂
2. That’s easier. Use “pybombs package”, and you get a tar.gz of your  
prefix. again, this will only include things that are not installed by  
using your distro’s package manager.

Greetings,  
Marcus

---

<div class="post-metadata">

**Author:** ![reback](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/b5ac83/32.png) [@reback](https://www.ruby-forum.com/u/reback)\
**Post date:** [April 29, 2015, 8:27pm UTC](https://www.ruby-forum.com/t/gnu-radio-on-air-gapped-computer/241775/3 "2015-04-29T20:27:36Z")

</div>

Marcus,

I’ll try the second approach. I created the target.tar.gz from a  
computer  
(same OS) that is networked and fully updated. I have copied this over  
to  
the air gapped machine, but now what do I do? Just having the target  
folder  
isn’t enough to update the install. How do I update from here?

v/r,  
Rich

On Wed, Apr 29, 2015 at 10:47 AM, Marcus Müller  
[removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)

---

<div class="post-metadata">

**Author:** ![reback](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/b5ac83/32.png) [@reback](https://www.ruby-forum.com/u/reback)\
**Post date:** [April 29, 2015, 9:14pm UTC](https://www.ruby-forum.com/t/gnu-radio-on-air-gapped-computer/241775/4 "2015-04-29T21:14:21Z")

</div>

Thanks for helping me through this Marcus, I appreciate it.

Another words, if I installed Doxygen on my non-air gapped computer and  
used this to make the target.tar.gz then the air gapped computer must  
have  
Doxygen installed as well for the install to work?

I’m running into a problem that might be related to this, in that when I  
start grc on the air gapped computer after extracting the target.tar.gz  
to  
it, it prints the welcome to gnu radio 3.7.8 message but then barfs on  
the  
following error

File …/target/lib/python2.7/dist-packages/gnuradio/grc/base/odict.py",  
line 34, in **getitem**  
return self.data[key]  
KeyError: ‘options’

Do you know what problem this represents?

For my understanding, please help me understand this:  
As far as the prefix directory is concerned, in a normal pybombs install  
where the prefix is a local user directory, you are saying that the  
prefix  
directory is self contained and all that is needed for a working GRC,  
assuming all dependencies are installed, is this correct? The build  
process  
doesn’t throw files into /usr/local directories or share directories or  
any  
other central locations?

On Wed, Apr 29, 2015 at 11:50 AM, Marcus Müller  
[removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)

---

<div class="post-metadata">

**Author:** ![reback](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/b5ac83/32.png) [@reback](https://www.ruby-forum.com/u/reback)\
**Post date:** [April 29, 2015, 8:51pm UTC](https://www.ruby-forum.com/t/gnu-radio-on-air-gapped-computer/241775/5 "2015-04-29T20:51:33Z")

</div>

Well, if you installed into a prefix on the air gapped computer, too,  
you’d just overwrite everything in there with the contents of the  
archive.  
You must make absolutely sure that you bring all distro packages that  
are related in _any_ way to the software you’ll run to the same version  
that you’ve got on your online PC.

To be honest, this sounds like something you should ask the people that  
decide that and how you air gap your computer.  
I think the only practical way to have both an immediately updateable  
and yet air-gapped PC is to keep your data as cleanly archivable and  
restorable as possible, and script your set up routines as far as  
possible. Whenever you need an update, you then make a backup of your  
work, flatten the air-gapped PC, use your scripts to set up the  
environment in an up-to-date state, and then air-gap and restore your  
work. Everything else is just asking for extra hours.

Cheers,  
Marcus

---

<div class="post-metadata">

**Author:** ![reback](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/b5ac83/32.png) [@reback](https://www.ruby-forum.com/u/reback)\
**Post date:** [April 29, 2015, 11:04pm UTC](https://www.ruby-forum.com/t/gnu-radio-on-air-gapped-computer/241775/6 "2015-04-29T23:04:11Z")

</div>

Richard,

no solution here, but this is interesting because these kinds of  
problems are one of the reasons why we’re re-working PyBOMBS. Are USB  
drives allowed? I guess if so, you could fetch-all on one machine,  
update a USB drive, and then have PyBOMBS read repos from that.

Of course, air-gapping becomes kind of pointless if you can install  
anything from a USB drive.

M

---

<div class="post-metadata">

**Author:** ![reback](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/b5ac83/32.png) [@reback](https://www.ruby-forum.com/u/reback)\
**Post date:** [April 30, 2015, 9:14am UTC](https://www.ruby-forum.com/t/gnu-radio-on-air-gapped-computer/241775/7 "2015-04-30T09:14:44Z")

</div>

Hi Richard,

well, Doxygen is not the best example, because it’s only needed to  
generate documentation at build-time.  
But consider this: when you set up your soon-to-be-airgapped computer,  
you install python 2.7.8-15a-spam including the matching development  
headers.  
You do the same on your on-line machine.  
After a month or so, you decide you might want to update the python  
installation on your on-line computer. You do that, it’s now  
2.7.9-vikings. Another month passes. You realize that “having the most  
recent version of GR on the air-gapped computer” might be desirable. So  
you use pybombs to update GNU Radio on your on-line PC.  
The problem now is that the version of python on your air-gapped  
computer (spam) doesn’t match the one that the fresh GNU Radio was  
linked against. Since spam doesn’t have the same symbols as vikings,  
things go wrong as soon as you try to call a python function from C++.  
That might lead to confusion and ruin [1].  
The same mechanism applies to all libraries that GNU Radio or any of the  
things you build on your on-line PC. So you’d have to make absolutely  
sure that the libraries installed on your on-line PC match the versions  
on the air-gapped one.

Greetings,  
Marcus

[1] [Monty Python - Spam - YouTube](https://youtu.be/anwy2MPT5RE?t=2m4s)

---

<div class="post-metadata">

**Author:** ![reback](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/b5ac83/32.png) [@reback](https://www.ruby-forum.com/u/reback)\
**Post date:** [April 29, 2015, 11:29pm UTC](https://www.ruby-forum.com/t/gnu-radio-on-air-gapped-computer/241775/8 "2015-04-29T23:29:19Z")

</div>

Hi Martin,

Yes you’re right that we can’t use USB drives, but I should be able to  
do  
the same thing on a DVD. Can you explain the steps you would use to  
create  
the USB drive and I will do that on a DVD instead. This is the part I’m  
just not sure how to do.

v/r,  
Rich

On Wed, Apr 29, 2015 at 2:02 PM, Martin B. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)

---

<div class="post-metadata">

**Author:** ![reback](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/b5ac83/32.png) [@reback](https://www.ruby-forum.com/u/reback)\
**Post date:** [April 30, 2015, 5:05pm UTC](https://www.ruby-forum.com/t/gnu-radio-on-air-gapped-computer/241775/9 "2015-04-30T17:05:51Z")

</div>

Alright. I’m understanding there is no good way to keep an air gapped  
computers GNU Radio up to date because there is no good way of keeping  
the  
air gapped computers dependencies up to date.

I had hoped other air gappers would speak up and explain how they  
maintain  
their systems. Oh well.

v/r,  
Rich

On Thu, Apr 30, 2015 at 12:13 AM, Marcus Müller  
[removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)

---

<div class="post-metadata">

**Author:** ![reback](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/b5ac83/32.png) [@reback](https://www.ruby-forum.com/u/reback)\
**Post date:** [April 30, 2015, 5:29pm UTC](https://www.ruby-forum.com/t/gnu-radio-on-air-gapped-computer/241775/10 "2015-04-30T17:29:13Z")

</div>

Haven’t done this before, but this might work:

- do a fetch-all with pybombs
- burn the pybombs dir as-is to the dvd
- copy it to the air-gapped computers disk (make sure you have w  
permissions there)
- … then, all the packages should be listed as fetched and you can  
install whatever.

M

---

<div class="post-metadata">

**Author:** ![reback](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/b5ac83/32.png) [@reback](https://www.ruby-forum.com/u/reback)\
**Post date:** [April 30, 2015, 5:53pm UTC](https://www.ruby-forum.com/t/gnu-radio-on-air-gapped-computer/241775/11 "2015-04-30T17:53:11Z")

</div>

Thank you. I will give this a try the next update go around. We switched  
out hard drives to get around the update this time.

v/r,  
Rich

On Thu, Apr 30, 2015 at 8:27 AM, Martin B. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)

---

<div class="post-metadata">

**Author:** ![reback](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/b5ac83/32.png) [@reback](https://www.ruby-forum.com/u/reback)\
**Post date:** [May 1, 2015, 12:33am UTC](https://www.ruby-forum.com/t/gnu-radio-on-air-gapped-computer/241775/12 "2015-05-01T00:33:57Z")

</div>

Similar issues here. On Fedora, you can use reposync to mirror a  
repository  
to disc, transfer to DVD, then you can point yum to that when  
installing/updating packages on your gapped machine. I believe you can  
do  
something similar for a git repository, burn to DVD, then point it your  
DVD  
when cloning and pulling. I have not tried the last part. May not be  
able  
to use pybombs then, but I have actually never used it; I keep a list of  
dependencies GR needs, and just cut/paste to yum:

> **[GNU Radio and Ettus UHD Build Notes](https://rfpoweramp.com/2013/02/08/gnu-radio-build-notes/)**
>
> Fedora 36 x86\_64 with Python 3.10 Instructions at Dependencies Dependencies listed at Add to .profile export PYTHONPATH=/usr/local/lib64/python3.10/site-packages:/usr/local/lib/python3.10/dist-pack…

Lou

Richard B. wrote

> Alright. I’m understanding there is no good way to keep an air gapped  
> computers GNU Radio up to date because there is no good way of keeping the  
> air gapped computers dependencies up to date.
> 
> I had hoped other air gappers would speak up and explain how they maintain  
> their systems. Oh well.
> 
> v/r,  
> Rich

–  
View this message in context:  
[http://gnuradio.4.n7.nabble.com/GNU-Radio-on-Air-Gapped-Computer-tp53527p53558.html](http://gnuradio.4.n7.nabble.com/GNU-Radio-on-Air-Gapped-Computer-tp53527p53558.html)  
Sent from the GnuRadio mailing list archive at [Nabble.com](http://Nabble.com).
