FNAL ASIC Compute provides user configuration files for FNAL ASIC computing devices. The current supported configurations include the following:
- MacOS client running VNC
- Linux servers supporting VNC
The user configuration files can installed using the code snippet below.
curl -sL https://github.com/ic-designer/fnal-asic-compute/archive/refs/tags/0.7.4.tar.gz | tar xz
make -C fnal-asic-compute-0.7.4 install
The Makefile will use information about the operating system to determine which configuration to install. As shown below, the Makefile first determines the operating system, then passes the target to the configuration specific target.
UNAME_OS:=$(shell sh -c 'uname -s 2>/dev/null')
ifeq ($(UNAME_OS),Darwin)
TARGET_CONFIG := fnal-asic-config-macos-client
else ifeq ($(UNAME_OS),Linux)
TARGET_CONFIG := fnal-asic-config-linux-server
else
$(error Unsupported operating system, $(UNAME_OS))
endif
SRCDIR_ROOT = $(TARGET_CONFIG)
The macOS client configuration provides the following user configuation files:
~/.kerberos/krb5.conf
- FNAL Kerberos Configuration for MacOS~/.kerberos/krbtools-keytab
- Helper script to generate keytab file needed for passwordless authentication.~/.ssh/config
- FNAL SSH client configurations.~/.zshrc
- Base zsh run command file.
The envirnment variables provided below are also supported. These variables can be uniquely set
for each user by adding to the override file ~/.zshrc_local
.
KRB5_PRINCIPAL
- Overrides the default kerebros principal if defined.
The MacOS client configuration also installs vnctools
to help manage VNC connections.
The Linux server configuration provides the following user configuation files:
~/.local/bin/filename-search-and-replace
- Bash script for renaming files using search and replace.~/.local/bin/isntall-pyenv
- Bash scrip to help install pyenv.~/.ssh/config
- FNAL SSH server configurations.~/.bashrc
- Base bash run command file.~/.bash_profile
- Base profile file.
The supported make targets are shown below.
check
- Performs a stagedinstall
anduninstall
in a test directory.clean
- Deletes all internal build files.install
- Installs copies of the configuration files.test
- Same ascheck
.uninstall
- Uninstalls the configuration files.
.PHONY: check
check: private_test
.PHONY: clean
clean: private_clean
.PHONY: install
install: private_install
.PHONY: test
test: private_test
.PHONY: uninstall
uninstall: private_uninstall