It took me a week, barking up the wrong three a lot, but I did it, an here is how:
My premesis:
A MacBook Pro 2017 with less than 10G space left
An Ubuntu 20.20 with plenty of space
An external 1TB SSD formatted with HFS+ and named "SSD"
Start with your Mac.
At first download Xcode from:
Code Block https://developer.apple.com/download/more/?q=xcode |
directly to your external disk, changing the download location in the Safari preferences. I have chosen v12.0.1.
Go to terminal an change directory to the mount point of your external drive.
On your Mac now unpack the .xip file using:
Code Block xar -xf Xcode_12.0.1 /Volumes/SSD/ |
This is going to give you a folder named "Xcode_12.0.1" with two files inside: Metadata and Content.
Now switch to Ubuntu.
Download the files from this repository:
Code Block https://github.com/NiklasRosenstein/pbzx/blob/master/pbzx.c |
To compile it, I needed to download and install some old libraries from Ubuntu 14.10 on my Ubuntu 20.20.
I can provide more Information about this if needed, but mainly it is about the following libraries and packages:
Code Block libxar-1.6.1-alt3.x86_64 |
libxar-dev_0.7r1785-5ubuntu2_amd64 |
xar-1.6.1 |
libpng12-0_1.2.50-2+deb8u3_amd64 |
libwxgtk2.8-0_2.8.12.1+dfsg-2ubuntu2_amd64 |
libwxbase2.8-0_2.8.12.1+dfsg-2ubuntu2_amd64 |
I also had to look for the xar.h I found somewhere I don't remember.
To make it easier I forked and uploaded the resources and a compiled version to:
Code Block https://github.com/FolkertsHeiko/pbzx |
Sure you have to trust me, but you can. I promise ;-).
If you want to do it yourself, here is the gcc command line, but do not expect it to work out of the box:
Code Block gcc pbzx.c /usr/lib/libxar.so -lxar -llzma -o pbzx |
To mount the external volume you sure going to need the hfsprogs package:
Code Block sudo apt-get install hfsprogs |
Next, mount or remount the HFS+ drive:
Code Block sudo mount -t hfsplus -o force,rw /dev/sdXY /media/mntpoint |
or
Code Block sudo mount -t hfsplus -o remount,force,rw /mount/point |
Now decompress the Content file with the self-compiled pbzx binary, both mentioned above, and unpack it with cpio, which already was installed on my Ubuntu System:
Code Block pbzx -n /media/heiko/SSD/Xcode_12.0.1/Content | cpio -i |
This will give you another folder in your current working directory, named Xcode.app
Go back to your Mac and link the Xcode-Application:
Code Block cd /Applications |
sudo ln -s /Volumes/SSD/Xcode.app/ . |
Now run it with Finder, which is going to take a while for the first start.
After that, Xcode should run from your external drive.
I hope this is helpful.
Happy coding,
Heiko.
Edit: Typos
Me also getting same problem whenever I try to update Xcode. At least it should show update size of any app. It doesn't show update size for any app in App Store. How can we know which update is consuming how much data? If it explicitly asks that I want exactly this much of space for installing updates then we can do something about it. Without showing update size it simply goes on asking for more space for whatever free space we provide. Anyway this problem was encountered when I updated from
Catalina 11.15 to Big Sur 11.0 (trouble moving Xcode from 12.4 (12D4e)) to 12.5