Friday, 23 April 2021

https://ift.tt/3dMijpw

This is my note as a beginner on using Guix in my computing. Because this is a beginner article, it'll be fun, as we'll also find something similar to checkpoints as we find at video games here. Now let's go!


Subscribe to UbuntuBuzz Telegram Channel to get article updates.

 

About Guix


Guix is a program you put on operating system you are using to install, update, and configure tens of thousands of computer software applications automatically from a central repository maintained by GNU Guix Project. In other words, Guix for an Ubuntu user is similar to APT but portable, can be installed on other GNU/Linux distros, and independent, has its own software packages can run on any distro not dependent to any of them. Visit guix.gnu.org to learn more.




Features


With Guix you can...

... revive your old computers (32 bit) with latest software and their updates,

... obtain software you want in whatever GNU/Linux distro you're using,

... run two different versions of a software at a same time, and

... get an alternative to Flatpak or Snap technology,

... without root (administrator) privilege to do these all.



Requirements


- A computer, either 64 or 32 bit is fine.

- A GNU/Linux operating system, either Ubuntu or other one is fine.

- Internet access. 

- Basic ability on command lines.


Installing Guix


To present this article to you all, dear readers, I run Guix program on top of a Debian laptop and not install a whole GuixSD operating system. To achieve that, I run several commands explained below. The result, once installed, we can invoke guix command from Terminal. These are my practice to the official Guix documentation Binary Installation.

 [Picture 1. Guix program installation by a script]


First command:

$ wget https://git.savannah.gnu.org/cgit/guix.git/plain/etc/guix-install.sh

Note: Debian does not include wget by default so I need to install it first by issuing its command line $ sudo apt-get install wget before I proceed.


Second command:

$ chmod +x guix-install.sh


Third command:

$ sudo ./guix-install.sh

Note: Mageia by default does not include sudo so if we use Mageia as a basis, we should install sudo first by issuing its command line $ su; # dnf install sudo; # exit before we proceed.


Fourth command:

$ wget 'https://sv.gnu.org/people/viewgpg.php?user_id=15145' -qO - | sudo -i gpg --import -

Note: this command requires internet access and should result in Ludovic Courtes' digital key. He is the founder of Guix.

 

Fifth command:

$ sudo ./guix-install.sh

 

Sixth command:

Answer yes to the question. 

 

Seventh command:

$ guix pull

Note: this command downloads, installs, and prepares a foundation to Guix so user can later install software. In Ubuntu language, this means it downloads the minimum dependencies a system should have such as gcc, glibc, bash, etc. In my experiment, this takes up to 2GB download size. I suggest you to use a broadband connection (2MB/s or later) to finish this.

 

Last command:

$ GUIX_PROFILE="$HOME/.guix-profile"
$ . "$GUIX_PROFILE/etc/profile"

 
Finally, I must log out and log in again to finish all Guix setup.  

 [Picture 2. guix pull in action]

 

Lessons learned:

- We can take benefits of Guix on Ubuntu, openSUSE, Mageia, and other GNU/Linux distros other than GuixSD itself.

- We can easily install Guix thanks to the script provided which automates everything.

- The command guix pull did the setup of Guix minimum system by downloading multiple packages.

- Some distro does not include several important programs by default such as sudo (Mageia) and wget (Debian).

 

Check Guix

To tell myself that Guix is ready, I check my running processes or services for a program named guix-daemon. See the greens below.

master@master:~$ ps aux | grep -i guix
root 769 0.0 0.1 8824 3332 ? Ss 04:03 0:00 /var/guix/profiles/per-user/root/current-guix/bin/guix-daemon --build-users-group=guixbuild
...
master@master:~$
systemctl status guix-daemon
guix-daemon.service - Build daemon for GNU Guix
Loaded: loaded (/etc/systemd/system/guix-daemon.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2021-04-22 04:03:58 WIB; 1h 42min ago
Main PID: 769 (guix-daemon)
Tasks: 1 (limit: 8192)
Memory: 6.1M
CPU: 1.954s
CGroup: /system.slice/guix-daemon.service
└─769 /var/guix/profiles/per-user/root/current-guix/bin/guix-daemon --build-users-group=guixbuild

...
master@master:~$

 

Begin Guix

 

Everything begins from the boss command:

$ guix describe

So we know our Guix system as a whole. We will need this when we ask about Guix to the online community.

master@master:~$ guix describe
Generation 2 Apr 21 2021 21:58:10 (current)
guix f8acd1a
repository URL: https://git.savannah.gnu.org/git/guix.git
branch: master
commit: f8acd1aeefe2ff5183f58c7e10a1cec4793cffb7
...

Then we see installed packages on our system:

$ guix package --list-installed

We will often utilize this command to see what packages installed and what elses no longer installed on our Guix system.

master@master:~$ guix package --list-installed
geany 1.37.1 out /gnu/store/jrmp8cm7a5yd6xpv1j2nlj8ib7cxwjn5-geany-1.37.1
glibc-utf8-locales 2.31 out /gnu/store/395pvii4bcjqxvdv7h0drq10lxi01sv1-glibc-utf8-locales-2.31
nmap 7.80 out /gnu/store/b4ks9f477sk7z862a9yd9ns1s0flf3dx-nmap-7.80
fping 5.0 out /gnu/store/kjyrv173ykb7h266k0sqgijkr40kl0nr-fping-5.0
wget 1.20.3 out /gnu/store/qxfwz1k6lnp0kw0cg1pf5hqr0s13p7fk-wget-1.20.3
testdisk 7.1 out /gnu/store/ximcd9i3yh7spclr5vq34shih3das5d7-testdisk-7.1

...

However, for first time use, of course it will be empty.

 

Check Disk Space

 

I do disk space checking multiple times. I do commands below before and after I do guix pull and guix install.

$ df -h /
$ du -h /gnu
$ du -h /var/guix
$ baobab # my favorite tool at GNOME

Before guix pull:

As you can see below, my /gnu and /var directories are both like that. By the time being, /gnu will grow tremendous amount.

 

After guix pull:

See /gnu directory, it grows from 500MB to 2000MB. However, /var/guix grows very little.



Install Software


Software installation process in Guix is unique on its own way as appeared below. Unlike APT, Guix does not tell total amount of download as a whole but only as parts as it will tell us again and again to download this amount then that amount. Below is my process of installing Geany the small but complete text editor. This is already a second attempt (6MB) after a removal while the first one were very much larger (700MB).

master@master:~$ guix install geany
The following package will be installed:
geany 1.37.1

substitute: /gnu/store/pwcp239kjf7lnj5i4lkdzcfcxwcfyk72-bash-minimal-5.0.16/bin/bash: warning: setlocale: LC_ALL: cannot change locale (en_US.utf8)
6.2 MB will be downloaded
/gnu/store/pwcp239kjf7lnj5i4lkdzcfcxwcfyk72-bash-minimal-5.0.16/bin/bash: warning: setlocale: LC_ALL: cannot change locale (en_US.utf8)
geany-1.37.1 3.4MiB 721KiB/s 00:05 [##################] 100.0%

The following derivation will be built:
/gnu/store/qc9gm3xhmjzs4wvw654vmpqgm44krqdg-profile.drv

building CA certificate bundle...
building fonts directory...
generating GLib schema cache...
creating GTK+ icon theme cache...
building cache files for GTK+ input methods...
building directory of Info manuals...
building database for manual pages...
building XDG desktop file cache...
building XDG MIME database...
building profile with 3 packages...
master@master:~$

The picture is like below:

To search for a software, we use command for searching. After that, we use the package name we found with the install command (e.g. type libreoffice instead of LibreOffice).

$ guix search [keywords]

master@master:~$ guix search text editor # results edited
name: vim
name: vim-full
name: tepl
name: pluma
name: ne
name: nano
name: mousepad

...


Size of an Installed Software

We can check how much exactly a package with its dependencies by size in megabytes.

$ guix size [package_name]

master@master:~$ guix size geany
substitute: /gnu/store/pwcp239kjf7lnj5i4lkdzcfcxwcfyk72-bash-minimal-5.0.16/bin/bash: warning: setlocale: LC_ALL: cannot change locale (en_US.utf8)
store item total self
/gnu/store/rv567nsh90bqz5gfh6sh1g84jccxcifa-llvm-11.0.0 220.0 148.6 19.4%
/gnu/store/7disnxqw8i3n4zhw5s0xj9kkdckkmr1p-mesa-20.2.4 389.1 141.6 18.5%
/gnu/store/18hp7flyb3yid3yp49i6qcdq0sbi5l1n-guile-3.0.2 132.8 53.2 7.0%
/gnu/store/n2cnp2fivxq10kxqalcv2q41wzsyj9yd-gtk+-3.24.24 744.3 49.1 6.4%
/gnu/store/ckwyq3y43i33s5fl9hb6c51418rh1qwj-icu4c-66.1 110.2 38.1 5.0%
/gnu/store/fa6wj5bxkj5ll1d7292a70knmyl7a0cr-glibc-2.31 38.4 36.7 4.8%
/gnu/store/yf81h4xdajc6jbxs5amqajai9w0yfixb-ghostscript-with-cups-9.52 222.0 33.9 4.4%
/gnu/store/01b4w3m6mp55y531kyi1g8shh722kwqm-gcc-7.5.0-lib 71.0 32.6 4.3%
...
total: 765.0 MiB
master@master:~$

Example above showing that Geany with its dependencies is amount to 700 megabytes. One more example below:

master@master:~$ guix size fping
store item total self
/gnu/store/fa6wj5bxkj5ll1d7292a70knmyl7a0cr-glibc-2.31 38.4 36.7 51.7%
/gnu/store/01b4w3m6mp55y531kyi1g8shh722kwqm-gcc-7.5.0-lib 71.0 32.6 45.9%
/gnu/store/mmhimfwmmidf09jw1plw3aw1g1zn2nkh-bash-static-5.0.16 1.6 1.6 2.3%
/gnu/store/kjyrv173ykb7h266k0sqgijkr40kl0nr-fping-5.0 71.1 0.1 0.1%
total: 71.1 MiB
master@master:~$

These two examples are different programs namely Geany and fping. However, they share several dependencies (in other words, they require several same programs) which are already installed in the system. Once a dependency installed, further programs which need that dependency will not cause redundancy as the required one only installed once. This indicates that Guix holds dynamic linking views rather than the static linking ones -- just the same as Unix and GNU. To me, this tells that Guix is as opposite to AppImage as technology choices to get software for users.


Play Checkpoints


Guix features generations, or I prefer to call them checkpoints, they are player's saved points in time, where each point in Guix is not how much we defeat some monsters but (in my observation) how much programs we install. Sum of actions we do in a checkpoint is called transaction and it may be either install or remove. Installing a program creates a checkpoint, further install adds more checkpoints, and just as video games we can go back to a previous checkpoint if we fail at a point. This "go back" is called rollback in Guix. There is another way, that is, player can jump between checkpoints he made, and this is called switch-generation in Guix. As you can guess, of course a player can see all checkpoints he made, and this is called list-generations in Guix.

$ guix package --list-generations
$ guix package --switch-generation
$ guix package --roll-back
 
For example, below I have several checkpoints after doing install and remove several times. 

[Picture 3. Checkpoints I made in my Guix system.]
 
From checkpoint list, we know that I am at Checkpoint 15 right now indicated with (current) where I defeated a monster installed a program named recutils. If I do list installed packages here, I got a result telling us all monsters defeated all programs installed from all time up to Checkpoint 15.

Let's assume I fail at Checkpoint 15 and want to respawn back in previous stage, I do rollback, so currently I am alive again in Checkpoint 14. Here, I cannot run recutils anymore, neither remove it, because in Checkpoint 14 there is no recutils. As an addition, in Checkpoint 14 of course I cannot run testdisk, the sword I got program I installed at previous stages afar and stolen by goblin removed at several checkpoints before this. Makes sense, right?

Let's assume I want to go back to my earliest stage, Checkpoint 6, I do switch-generation, Guix jumped me there. In this stage I can run testdisk again, the program I removed at Checkpoint 7, which is of course not available at Checkpoint 14. It is very similar to checkpoints in a video game.

Do you wonder why my earliest stage is Checkpoint 6 and not 1? Because I deleted them all with delete-generations. 

Uninstall Guix

 

Finally, if we wish to remove Guix completely from the system, then imagine deleting video game's data. We only need to delete two folders and several other things as Guix in fact only store /gnu and /var/guix in our computer. In reality, I learned from Arch Wiki and Guix Forum the procedures like below.

$ sudo systemctl stop guix-daemon.service
$ sudo rm -rfv /etc/systemd/system/guix-daemon.service # if existent
$ sudo rm -rfv /etc/systemd/system/guix-daemon.service.d # if existent
$ sudo rm -rfv /etc/profile.d/guix.sh # if existent
$ sudo rm -rfv /gnu # the place of all programs
$ sudo rm -rfv /var/guix
$ sudo rm -rfv ~/.profile/guix


Afterwords

 

That's how I try GNU Guix! There are of course many things uncovered in this simple article such as how to repackage installed software and advanced things like containerization. However, I wish Let's Try Guix can give other people a picture in how a normal Ubuntu Desktop user take benefits from it. See you next time!



This article is licensed under CC BY-SA 3.0.
Originally posted here: https://ift.tt/2RYF9lr

0 comments:

Post a Comment

ShortNewsWeb

Blog Archive

Categories

'The Woks of Life' Reminded Me to Cook With All the Flavors I Love (1) 10 Scary Podcasts to Listen to in the Dark (1) 13 of the Best Spooky Episodes From (Mostly) Un-Spooky Shows (1) 13 Spooky Movies Set on Halloween Night (1) 1Password Now Generates QR Codes to Share Wifi Passwords (1) 2024 (15) 21 Thanksgiving Movies About Families As Screwed-Up As Yours (1) 30 Movies and TV Shows That Are Basically 'Competence Porn' (1) 30 of the Most Obscenely Patriotic Movies Ever (1) 31 Spooky Movies to Watch Throughout October (1) 40 Netflix Original Series You Should Watch (1) 55 Box Office Bombs Totally Worth Watching (1) Active Directory (1) Adobe's AI Video Generator Might Be as Good as OpenAI's (1) AIX (1) and I'd Do It Again (1) and Max Bundle Isn't a Terrible Deal (1) and They're All on Sale for Black Friday (1) Apache (2) Apple Intelligence Is Running Late (1) Apple Intelligence's Instructions Reveal How Apple Is Directing Its New AI (1) August 18 (1) August 4 (1) August 5 (1) Avoid an Allergic Reaction by Testing Your Halloween Makeup Now (1) Backup & Restore (2) best practices (1) bleepingcomputer (65) Blink Security Cameras Are up to 68% Off Ahead of Prime Day (1) CentOS (1) Configure PowerPath on Solaris (1) Documents (2) Don't Fall for This 'New' Google AI Scam (1) Don't Rely on a 'Monte Carlo' Retirement Analysis (1) Eight Cleaning Products TikTok Absolutely Loves (1) Eight of the Best Methods for Studying so You Actually Retain the Information (1) Eight Unexpected Ways a Restaurant Can Mislead You (1) Elevate Your Boring Store-Bought Pretzels With This Simple Seasoning Technique (1) Everything Announced at Apple's iPhone 16 Event (1) file system (6) Find (1) Find a Nearby ‘Gleaning Market’ to Save Money on Groceries (1) Five Red Flags to Look for in Any Restaurant (1) Five Ways You Can Lose Your Social Security Benefits (1) Flappy Bird's Creator Has Nothing to Do With Its 'Remake' (1) Four Reasons to Walk Out of a Job Interview (1) Four Signs Thieves Are Casing Your House (1) gaming (1) Goldfish Crackers Have a New Name (for a Little While) (1) Hackers Now Have Access to 10 Billion Stolen Passwords (1) How I Finally Organized My Closet With a Digital Inventory System (1) How I Pack Up a Hotel Room So I Don’t Forget Anything (1) How to Buy Residency in Another Country With a 'Golden Visa' (1) How to Cancel Your Amazon Prime Membership After Prime Day Is Over (1) How to Choose the Best Weightlifting Straps for Your Workout (1) How to Enable (and Turn Off) Apple Intelligence on an iPhone (1) How to Get Started With Bluesky (1) How to Keep Squirrels Off Your Bird Feeders (1) How to Remotely Control Another iPhone or Mac Using FaceTime (1) How to Set Up Your Bedroom Like a Hotel Room (and Why You Should) (1) How to Speak With a Real Person at Target Customer Service (1) How to Take a Screenshot on a Mac (1) How to Take Full Control of Your Notifications on a Chromebook (1) How to Use Picture-in-Picture Mode on an Android Phone (1) Hulu (1) I Chose the Beats Fit Pro Over the AirPods Pro (1) I'd Recommend These Seven Outdoor Security Cameras I've Tested (1) If You Got a Package You Didn't Order (1) If You Hate Running (1) Important Questions (17) Install and Configure PowerPath (1) interview questions for linux (2) Is ‘Ultra-Processed’ Food Really That Bad for You? (1) Is Amazon Prime Really Worth It? (1) It Might Be a Scam (1) July 14 (1) July 21 (1) July 28 (1) July 7 (1) June 30 (1) LifeHacker (143) Linux (36) Make and Freeze Some Roux Now for Easy Turkey Gravy (1) Meta Releases Largest Open-Source AI Model Yet (1) Monitoring (3) music (688) My Favorite 14TB Hard Drive Is 25% Off Right Now (1) My Favorite Amazon Deal of the Day: Apple AirPods Max (2) My Favorite Amazon Deal of the Day: Apple Pencil Pro (1) My Favorite Amazon Deal of the Day: Google Nest Mesh WiFi Router (1) My Favorite Amazon Deal of the Day: Google Pixel 8 (1) My Favorite Amazon Deal of the Day: PlayStation 5 (1) My Favorite Amazon Deal of the Day: Samsung Odyssey G9 Gaming Monitor (1) My Favorite Amazon Deal of the Day: SHOKZ OpenMove Bone Conduction Headphones (1) My Favorite Amazon Deal of the Day: The 13-Inch M3 Apple MacBook Air (1) My Favorite Amazon Deal of the Day: These Bose QuietComfort Headphones (1) My Favorite Tools for Managing Cords and Cables (1) Nagios (2) Newtorking (1) NFS (1) OMG! Ubuntu! (688) Oracle Linux (1) oracleasm (3) osnews (29) Password less communication (1) Patching (2) Pixel Studio Is the Easiest (If Not the Best) Way to Make AI Art on Your Pixel 9 (1) Poaching Is the Secret to Perfect Corn on the Cob (1) powerpath (1) Prioritize Your To-Do List By Imagining Rocks in a Jar (1) Red Hat Exam (1) register (74) Rsync (1) Safari’s ‘Distraction Control’ Will Help You Banish (Some) Pop Ups (1) Samba (1) Scrcpy (1) September 1 (1) September 15 (1) September 2 (1) September 22 (1) September 23 (1) September 30 (1) September 8 (1) Seven Home 'Upgrades' That Aren’t Worth the Money (1) Seven Things Your Credit Card’s Trip Protection Won’t Actually Cover (1) Six Unexpected Household Uses for Dry-Erase Markers (1) ssh (1) Swift Shift Is the Window Management Tool Apple Should Have Built (1) System hardening (1) Tailor Your iPhone's Fitness Summary to Your Workouts (1) Target’s ‘Circle Week’ Sale Is Still Going After October Prime Day (1) Target’s Answer to Prime Day Starts July 7 (1) Tech (9546) Tech CENTRAL (25) Technical stories (134) technpina (7) The 30 Best Movies of the 2020s so Far (and Where to Watch Them) (1) The 30 Best Sports Movies You Can Stream Right Now (1) The Best Deals on Robot Vacuums for Amazon’s Early Prime Day Sale (2) The Best Deals on Ryobi Tools During Home Depot's Labor Day Sale (1) The Best Early Prime Day Sales on Power Tools (1) The Best Movies and TV Shows to Watch on Netflix This Month (1) The Best October Prime Day Deals If You Are Experiencing Overwhelming Existential Dread (1) The Best Places to Go When You Don't Want to Be Around Kids (1) The Best Places to Order Thanksgiving Dinner to Go (1) The Best Strategies for Lowering Your Credit Card Interest Rate (1) The Best Ways to Store All Your Bags and Purses (1) The Latest watchOS Beta Is Breaking Apple Watches (1) The New Disney+ (1) The Samsung Galaxy Buds 3 Pro Are $60 Off for Black Friday (1) The Two Best Times of Year to Look for a New Job (1) the X Rival Everyone's Flocking To (1) These Bissell Vacuums Are on Sale Ahead of Black Friday (and They're All Great) (1) These Meatball Shots Are My Favorite Football Season Snack (1) These Milwaukee Tools Are up to 69% off Right Now (1) This 2024 Sony Bravia Mini-LED TV Is $400 Off Right Now (1) This 75-Inch Hisense ULED 4K TV Is $500 Off Right Now (1) This Google Nest Pro Is 30% Off for Prime Day (1) This Peanut Butter Latte Isn’t As Weird As It Sounds (1) This Tech Brand Will Get the Biggest Discounts During Prime Day (1) Three Quick Ways to Shorten a Necklace (1) Three Services People Don't Know They Can Get From Their Bank for Free (1) Today’s Wordle Hints (and Answer) for Monday (4) Today’s Wordle Hints (and Answer) for Sunday (11) Try 'Pile Cleaning' When Your Mess Is Overwhelming (1) Try 'Pomodoro 2.0' to Focus on Deep Work (1) Try 'Rucking' (1) Ubuntu News (347) Ubuntu! (1) Unix (1) Use This App to Sync Apple Reminders With Your iPhone Calendar (1) Use This Extension to Find All Your X Followers on Bluesky (1) veritas (2) Videos (1) Was ChatGPT Really Starting Conversations With Users? (1) Watch Out for These Red Flags in a Realtor Contract (1) Wayfair Is Having a '72-Hour Closeout' Sale to Compete With Prime Day (1) We Now Know When Google Will Roll Out Android 15 (1) What Is the 'Die With Zero' Movement (and Is It Right for You)? (1) What Not to Do When Training for a Marathon (1) What to Do When Your Employer Shifts Your Pay From Salary to Hourly (1) What to Look for (and Avoid) When Selecting a Pumpkin (1) What to Wear to Run in the Cold (1) What's New on Prime Video and Freevee in September 2024 (1) Why You Can't Subscribe to Disney+ and Hulu Through Apple Anymore (1) Why Your Home Gym Needs Adjustable Kettlebells (1) Windows (5) You Can Easily Add Words to Your Mac's Dictionary (1) You Can Get 'World War Z' on Sale for $19 Right Now (1) You Can Get a Membership to BJ's for Practically Free Right Now (1) You Can Get Beats Studio Buds+ on Sale for $100 Right Now (1) You Can Get Microsoft Visio 2021 Pro on Sale for $20 Right Now (1) You Can Get This 12-Port USB-C Hub on Sale for $90 Right Now (1) You Can Get This Roomba E5 Robot Vacuum on Sale for $170 Right Now (1) You Can Hire Your Own Personal HR Department (1) You Can Search Through Your ChatGPT Conversation History Now (1) You Can Set Different Scrolling Directions for Your Mac’s Mouse and Trackpad (1)

Recent Comments

Popular Posts

Translate

My Blog List

Popular

System Admin Share

Total Pageviews