myspaghetti / macos-virtualbox

Push-button installer of macOS Catalina, Mojave, and High Sierra guests in Virtualbox on x86 CPUs for Windows, Linux, and macOS
GNU General Public License v2.0
13.46k stars 1.11k forks source link

Script exits as though dependencies are not installed, even though they are #608

Closed cdn-content closed 2 years ago

cdn-content commented 2 years ago

Trying to run the script on OSX 10.13 (High Sierra) to install a testing VM of Catalina (then later update to Big Sur/Monterey with recommended "tweaks" as highlighted elsewhere on this board). I have spent the whole day installing all the necessary dependencies it asks for (via HomeBrew): coreutils, wget, gzip, and unzip. Have done reinstalls multiple times as well. Have added gnubin folder to PATH. Have added other folders with HomeBrew-installed utilities to PATH. Have even added all of usr/local/opt to PATH. Still get an exit when running the script, as though it is not finding them. Am I doing something wrong?

Last login: Mon Jun  6 20:12:58 on ttys000
MacBook-Pro:macos-virtualbox-master me$ /usr/local/bin/bash -i macos-guest-virtualbox.sh

Push-button installer of macOS on VirtualBox

This script installs only open-source software and unmodified Apple binaries,
and requires about 50GB of available storage, of which 25GB are for temporary
installation files that may be deleted when the script is finished.

The script interacts with the virtual machine twice, please do not interact
with the virtual machine manually before the script is finished.

Documentation about optional configuration, iCloud and iMessage connectivity,
resuming the script by stages, and other topics can be viewed with the
following command:

  macos-guest-virtualbox.sh documentation | less -R

Press enter to review the script configuration

vm_name="macOS"
macOS_release_name="Catalina"    # install "HighSierra" "Mojave" "Catalina"
storage_size=80000               # VM disk image size in MB, minimum 22000
storage_format="vdi"             # VM disk image file format, "vdi" or "vmdk"
cpu_count=2                      # VM CPU cores, minimum 2
memory_size=4096                 # VM RAM in MB, minimum 2048
gpu_vram=128                     # VM video RAM in MB, minimum 34, maximum 128
resolution="1280x800"            # VM display resolution

These values may be customized as described in the documentation.

Press enter to continue, CTRL-C to exit
Please make sure the following packages are installed
and that they are of the version specified or newer:

    coreutils 8.22   wget 1.14   gzip 1.5   unzip 6.0

Please make sure the coreutils and gzip packages are the GNU variant.

Latest HomeBrew coreutils is version 9.1 so I most definitely have higher than 8.22. Latest wget reads as 1.21. Running unzip --version returns

UnZip 6.00 of 20 April 2009, by Info-ZIP.  Maintained by C. Spieler.  Send
bug reports using http://www.info-zip.org/zip-bug.html; see README for details.

Now when I run gzip --version I get "Apple gzip 272". When I cd all the way into /usr/local/opt/gzip/bin (for the HomeBrew version) and run ./gzip --version I get

gzip 1.12
Copyright (C) 2018 Free Software Foundation, Inc.
Copyright (C) 1993 Jean-loup Gailly.
This is free software.  You may redistribute copies of it under the terms of
the GNU General Public License <https://www.gnu.org/licenses/gpl.html>.
There is NO WARRANTY, to the extent permitted by law.

Written by Jean-loup Gailly.

So these GNU programs are installed, but for some reason the script is not acknowledging that they are. Is there something else I need to do to get it to recognize these dependencies so that the script can continue and I can install a VM?


EDIT: OK, I figured it out: In my .bash_profile I had added the directories after $PATH rather than in front of them, i.e.

export PATH="$PATH:/usr/local/opt/gzip/bin"

Reversing the location in all my entries worked i.e.

export PATH="/usr/local/opt/gzip/bin:$PATH"

I can't remember where I saw the first order recommended (StackExchange I think?) but anyway reversing it was what did the trick.