As of the date of this post, GNS3 doesn’t offer a native GNS3 client for macOS with Apple Silicon - so let’s remedy that. This post is technically a companion to GNS3 on Apple Silicon , but this GNS3 client will also work with other remote GNS3 server types.
Prerequisites
Steps
- Open your favorite terminal emulator.
We will be working from the command line for the majority of the following steps.
- Change to the
Downloads
directory.
cd ~/Downloads
- Clone the gns3-gui-apple-silicon repo from GitHub.
git clone https://github.com/mweisel/gns3-gui-apple-silicon.git
- Change to the
gns3-gui-apple-silicon
directory.
cd gns3-gui-apple-silicon
- Get your GNS3 server version.
If using GNS3 on Apple Silicon , run the following command:
curl -s http://gns3.orb.local:3080/v3/version
output:
{"controller_host":"127.0.0.1","version":"3.0.0","local":false}
- Clone the gns3-gui repo from GitHub.
My GNS3 version is 3.0.0
, so I run the following command:
git clone --depth 1 --branch v3.0.0 https://github.com/GNS3/gns3-gui.git src
- Display the
version
placeholder value in thegns3.spec
file.
grep version gns3.spec
output:
version='VER',
- Replace the
version
placeholder value.
Again, my version is 3.0.0
, so I run the following command:
sed -i '' -e 's/VER/3.0.0/' gns3.spec
- Verify the change for the
version
value.
grep version gns3.spec
output:
version='3.0.0',
- Create a Python virtual environment.
source init_venv.sh
- Verify PyInstaller is available.
pyinstaller --version
- Build the GNS3.app.
sh build_gns3_app.sh
- Deactivate the Python virtual environment.
deactivate
- Move the GNS3.app from the dist folder to the Applications folder.
- Bring your own Telnet (BYOT).
The telnet
binary is not included in the GNS3 application bundle. Refer to Alacritty with GNS3 on macOS
for a solution.
- Verify the goods.
file -b /Applications/GNS3.app/Contents/MacOS/gns3
output:
Mach-O 64-bit executable arm64