0
$\begingroup$

I am trying to install Singularity on my MacOS but it doesn't seem to pick up which singularity or singularity --version:

Main Attempt:

  1. Install using Homebrew (and install Home-brew):
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
brew install --cask --no-quarantine singularity
singularity --version

resulting in

==> Downloading https://bitbucket.org/router_gray/singularityviewer/downloads/Singularity_Alpha_1_8_9_8709_x86_64.dmg
Already downloaded: /Users/Username/Library/Caches/Homebrew/downloads/d3015dad9cc2d3ef25603a68114f3caf63cb0dd90e03f159405999262392baec--Singularity_Alpha_1_8_9_8709_x86_64.dmg
==> Uninstalling Cask singularity
==> Backing App 'SingularityAlpha.app' up to '/opt/homebrew/Caskroom/singularity/1.8.9.8709/SingularityAlpha.app'
==> Removing App '/Applications/SingularityAlpha.app'
==> Purging files for version 1.8.9.8709 of Cask singularity
==> Installing Cask singularity
==> Moving App 'SingularityAlpha.app' to '/Applications/SingularityAlpha.app'

Then test using singularity --version with the result

singularity not found

Attempt 2:

  • Maybe it wants singularity spelled with a capital Singularity instead of lowercase:
which Singularity

resulting in:

Singularity not found

Attempt 3:

  • Export the path to the bash_profile and the source it
export PATH="/Applications/SingularityAlpha.app/Contents/MacOS:$PATH"

However, this resulted in the same issue when singularity --version was run. It could not recognize that the singularity was installed.

Attempt 4:

  • Explore inside the Singularity app which is installed under '/Applications/SingularityAlpha.app'

  • The path /Applications/SingularityAlpha.app/Contents/MacOS lead to a file called SingularityAlpha.

  • Exporting this path in the bash profile and sourcing still lead to the same issue when trying to see if it even recoginzed the singularity using singularity --version.

I have also tried reinstalling it and it still has the same issue. Is there any suggestion for how to install/use Singularity locally as many packages will have to be tested locally on my machine before running it on my HPC?

$\endgroup$

2 Answers 2

3
$\begingroup$

Answer: Currently there is not a good way for Singularity to be installed on MacOS. Perhaps, there will be in the future.


I've tried and failed to install Singularity on macOS - it needs VirtualBox or some such virtualization software and a command line utility that makes virtual containers - ultimately there were so many problems that I just gave up. Docker is far easier to install on macOS and there is not a lot of difference IMO. You can use docker to build and test images and then pull them to a place where you have access to singularity and test singularity specific stuff there.

I think Singularity is a lot easier to install on Linux. See here: https://docs.sylabs.io/guides/3.0/user-guide/installation.html#mac


EDIT-2

Singularity-Alpha is a Second Life video game related cask (https://github.com/singularity-viewer/SingularityViewer), it is not the Singularity software. Don't waste your time on it, I just tried to test it and realized I'd already tested and discarded it as irrelevant.


EDIT: To address your homebrew issue, note that you're installing a cask and it's moving an App to /Applications/. Just typing in commands that should work is not the same as proper testing. Try opening the SingularityAlpha application to see what that does. I'm not saying it'll work, just that you can test it better. Your attempts only show a lack of understanding in how macOS Applications work and how you can(not) access them from the command line or add locations to $PATH like you can on Linux.

$\endgroup$
-1
$\begingroup$

I never got homebrew working successfully for OSX, personally I think its really optimised for Linux. Specifically if conda is already installed (https://docs.conda.io/en/main/miniconda.html) just use that.

Its exactly the same as for cnvkit ... if so just activate the cnvkit conda environment, i.e. skip the first line:

conda create --name myenv
conda activate myenv
conda install -c conda-forge singularity
singularity ...

Everything is automated, no need to export, configure etc .... When you are finished all singularity, cnvkit work ... just delete that given environment.


If it is slow switch to mamba and install mamba via conda.

mamba repoquery search singularity
mamba create -n mambaenv singularity <list of other packages>
mamba activate mambaenv
singularity ...

From the comments ...

I discussed this with @RamRS and the best solution is simply to use a Linux machine and install singularity via conda (above). It is unwise trying to get this working within OSX - it makes life more complicated.

Chromebooks use Linux Debian FYI, which is fine (small hard drives - so only use miniconda).

The solution below is a Python API for singularity.

Okay my error conda singularity is only available for Linux. Thats because it's an HPC solution (which are all Linux).

Within conda you can download singularity python via,

pip install singularity

This will load singularity 3.0 here https://pypi.org/search/?q=singularity&o=

If you are doing this make sure you make a new conda environment and pip install into that. Historically, pip and conda didn't work together, hence if there is conflict just delete the environment. Also you need to read what you are downloading - this is singularity python (not quite the same thing), but it might help. Its described here https://github.com/singularityhub/singularity-python

$\endgroup$
12
  • $\begingroup$ conda install -c conda-forge singularity gives the issue ackagesNotFoundError: The following packages are not available from current channels: - singularity The same issue occurs when is do conda install mamba it gives PackagesNotFoundError: The following packages are not available from current channels: - mamba $\endgroup$
    – Indira
    Jun 4 at 22:41
  • $\begingroup$ @Indira okay addressed above $\endgroup$
    – M__
    Jun 4 at 23:22
  • $\begingroup$ pip install singularity still leaves the issue that when I say singularity --version it says zsh: command not found: singularity $\endgroup$
    – Indira
    Jun 5 at 14:47
  • 1
    $\begingroup$ Let us continue this discussion in chat. $\endgroup$
    – Ram RS
    Jun 5 at 18:28
  • 1
    $\begingroup$ Brew cask is not used anymore so the command on the Singularity site should be brew install virtualbox --cask && \ brew install vagrant --cask && \ brew install vagrant-manager --cask instead of what they have but the export VM=sylabs/singularity-3.0-ubuntu-bionic64 && \ vagrant init $VM && \ vagrant up && \ vagrant ssh does not work giving zsh: command not found: vagrant $\endgroup$
    – Indira
    Jun 5 at 20:04

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.