Speeding up downloads: Faster or alternative download sources for installation (and pull)

This is just a quick PSA kind of post that some may find useful:

As probably everyone who has used Guix knows, the official download sources as hosted on the official GNU website are often down or slow due to being overloaded by either DDOS or legitimate traffic. But before you cry and give up installing Guix thinking it is doomed to be unusably slow, you should try using some of the alternative download sources:

Specifically for the installation (i.e. running the install.sh script which downloads an archive with the base Guix stuff in it), you can use a mirror instead of the main site’s ftp server to get the archive.

This can be done by editing the install.sh script:

sed -i 's/ftp.gnu.org/ftpmirror.gnu.org/g' install.sh

See GNU Mirror List - GNU Project - Free Software Foundation for more info.

Also as mentioned in Mirrors for git.savannah.gnu.org?, there are other options besides the default savannah git server which is used for guix pull. Including an officially managed one on Codeberg (which I found to be much faster in addition to being a good fall back if the other one is being DDOSed).

All together, this is the basic process that gave a much faster Guix install and first pull.

# Getting the install script
wget guix.gnu.org/install.sh
chmod +x install.sh
# Using ftpmirror.gnu.org instead of main site to reduce load on the main server and get faster downloads
sed -i 's/ftp.gnu.org/ftpmirror.gnu.org/g' install.sh
# Running the normal install process
sudo ./install.sh
guix pull --url=https://codeberg.org/guix/guix
2 Likes

Wow, thanks :slight_smile: Just want to say, I was trying the guix package manager in ubuntu and considering a full switch to the guix ecosystem once having grown more comfortable with the package manager and potentially guile scheme, only to be dented by how unexpectedly slow the pulling operation has been; now using the codeberg mirror you’ve shared with us here speeds up the pulling part by a significant margin, and I’m generally much more confident that a switch on my part will be possible.

1 Like

Glad you found it useful!

I’ve the same plan but I based my use of the Guix package manager on Debian.

I’m a bit further on and I’ve also 2 second hand ThinkPads with Guix installed as OS. I just updated the first one I setup after it was laying around for about a year and I installed a new CMOS battery. Update after 13 months and it went perfectly!

Faster package manager operations would be nice, but to be honest, I’m no longer an Arch user addicted to the need to update 5 times per day, so I can wait a bit and as the operations are atomic, I can run them in the background.

A local mirror is also an item on my my home lab list.

Wow, sounds amazing! I’m quite jealous of how you are now able to play with guix directly. The way you are approaching this emboldens me, it prompts me to consider whether I am held back a bit by superfluous forethought. I think I will also try to get my hands on a borrowed laptop today, to be able to keep my main environment as it is and to just jump right into it on another machine.

On the speed and more generally the internet dependency of the package management operations, though, I may not be able to put them on second place, having to rely on VPNs to bypass censorship in my region to just be able to Google.

Sad to hear and then I would recommend your own local mirrors even more to lessen the requirements for internet and transform a permanent internet dependency into a intermittent one.

A second hand notebook can make a nice home server with included UPS, low noise, compact and low power usage especially if you can setup wake on LAN.

Guix’s direct support for local mirrors (and I hope eventually some kind of P2P distributed substitute system) were some of the ideas that first caught my attention.

I always hated the multiple downloads of all the systems in my house (including family computers which I often don’t bother to maintain at the same frequency as my personal computers). I set up a caching proxy server once for it, but without being able to pin things to use the same version (and how it needs to be more centralized setup) it didn’t feel so great.

Guix’s stuff on the other hand seemed like a much more clean solution.

As we don’t want our servers to constantly need to access the internet, I maintain 2 mirrors at work, one for deb and one for rpm based distributions - so it’s not just a Guix thing.

I haven’t looked into it for Guix but I guess I will in the near future.

Please share any learnings here in the forum, if you tackle the topic.

This is such an intelligent strategy! The terminology of a home server was not in my vocabulary until you mentioned it, but after checking it out, I think it is precisely what I want. Depending on the level of dexterity with networking that is required to set things up, it could take me a long time to pull it off, but the direction is now clear.

Also, to share with you my current progress (which could be meager but I still find it exciting), I did manage to find an extra piece of hardware, but it turns out that guix explicitly doesn’t support the hardware due to ideological issues… So I decided to just go for QEMU instead. It still took several rounds for the installation to reach the finish line, mainly due to latency, but it’s worth it.

Well, there’s nonguix to solve this issue.

Depending on the level of dexterity with networking that is required to set things up, it could take me a long time to pull it off, but the direction is now clear.

Careful, or a home server can turn into a home lab very quickly and result in something like this Self Managed Guide :wink:

1 Like

Wonderful :smiley: I will try to incorporate this into the installation process somehow. I guess first try to follow the manuals to create a suitable image using facilities guix has provided, and if that runs into too many hurdles I will instead try to manually edit the config.scm file generated by the installer mid-installation.

OMG, THIS IS UNREAL. THE GUY WHO WROTE THIS IS EPIC.

To me, it is at first a counsel to extend vigilance to the level of hardware and firmware, and to embark on a personal odyssey to eliminate intentionally hidden factors in the technologies around us. Given my current circumstances and focus, such an all-inclusive remaking of one’s entire digital life down to the hardware may not be a top priority, but I am hooked, and whenever there is the opportunity to replace or enhance something I will return to it for inspiration. It is by starting from the link you shared that I managed to come across sites promoting open hardware such as h-node and Libreboot, and thus now have grabbed a few points of reference for those once missing pieces of the puzzle.

Yes the guy is epic, I follow his YouTube channel for years, I believe he was instrumental to get right to repair bills passed and his videos fixing macbooks by changing parts on the boards are mesmerizing.

1 Like

Yummy! Let me see :star_struck: OMG, he fixes macbooks and ipads and iphones! To tinker into the hardware itself, unbounded by the design of the manufacturer, this is truly unlimited power!


EDIT: I think sooner or later I will need a course in electronic circuits, otherwise what this man does in these videos remains a myth to me.

I think sooner or later I will need a course in electronic circuits, otherwise what this man does in these videos remains a myth to me.

Crazy thing is he is self taught lol. I need to work on my EE stuff as well. I have a bit of a backlog :sweat_smile: .

2 Likes

Wow, that is really, really, really awesome.

It has been hard, at least for me until now, to conceive of teaching oneself EE. To step outside the comfort of the mere conceptual, to use one’s own hands to actually interact with the raw components and materials, and to take the risks of breaking something, to bring about real-world consequences, it takes such courage, and seeing him in these videos faced with uncertainties but without in the slightest altering his adventurous attitude, it is admirable, and inspiring.

I hope that you make progress on your backlog :smiley: , and that I will gradually learn to be more confident with computer electronics.

By the way, to share with you guys the current progress on my attempted installations of guix directly on the hardware, I first tried the 1.4 version of the nonguix installation ISO in the release page of nonguix, but it still complains about missing network support during installation and cannot fetch any packages. So I turned to creating an image myself, and I believe I did find the right way to build the proper bootable installation image using guix system image roughly following the instruction in the nonguix link, having made sure that the nonguix channel was pulled from before invoking guix system image, and there isn’t complaint about any errors in the install.scm, but the process kept dying at random points when trying to download stuff so currently no image has been emitted, I suspect that it is a network issue on my part, and for this I will try to find faster mirrors.

I also did seemingly manage to install guix (without nonguix) on one of my family members’ machine, in the sense that the installer did not complain about having detected nonfree components, but after booting into the freshly installed system, the display of the screen even after entering a desktop environment is covered by a very blinding and piercing red to the extent that hardly anything is visible or readable, so I am guessing that there is some missing driver or something similar after all.

As I believe everyday activities can no longer be delayed, the current strategy is to switch to arch and hyprland as the main environment, which is completed today and I’m delighted to find out that I can survive there already, and am ready to slowly rice things up and tailor the keyboard and the cosmetics to my liking. I will still try to experiment with guix in VM and on borrowed hardware, to tackle the above two situations, but they will probably remain on the sideline for a while, as I consider it unwise in my current circumstance to direct more attention towards the setup than towards what the setup is for, even though the former is also fun and important. But if any unexpected progress is made on setting up guix as a system or maybe even as a server, I will happily show it off here. :smiley: Also I am hoping that many things I will learn in arch and hyprland will transfer to guix.

Yep that’s where I am too. I love the ideas of Guix, and I even got it to work on hardware, but getting everything to work it is just too much for me to take on right now. I have other more important things to do lol.

It’s a lot easier to lean to use a multi meter to check currents and resistances on an existing board - especially if you have the documentations shown in his videos. This is also why they fight to get them form the manufacturer.

Next you need to learn to solder. I can recommend to build your own keyboard from a kit.
As an Emacs user I prefer split keyboards like the ergo dox, Lily58, Corne, with thumb clusters to, so I can put CTRL, ALT, from my pinkies to my thumbs.

You will also learn to program the controller with firmware and can dabble with that as you need to burn the layouts on your new board.

Lastly you can start to design and build your own bards - which is still low complexity EE and thus a good entry point.

Check out GitHub - SystemCrafters/guix-installer: A GNU Guix installer image with the full Linux kernel! but you need to build the fresh iso yourself as the pipeline dies because the build got to big.