On 07/14/2017 05:52 AM, Federico Bruni wrote:
https://github.com/fedelibre/LilyDevOS/releases/tag/v0.1

Hi Federico,

This looks great! I downloaded the one for linux (I'm on Ubuntu 16.04 LTS) and gave it a try. I ran into a few things but got it working and successfully built LilyPond in the container. Details below.

One issue was that I had systemd installed, but not systemd-container, so I had to install that. So maybe we should add that to the dependencies in the instructions?

$ sudo systemd-nspawn -bD lilydevos-0.1
sudo: unable to resolve host t440s
sudo: systemd-nspawn: command not found

$ systemd-nspawn --help
The program 'systemd-nspawn' is currently not installed. You can install it by typing:
sudo apt install systemd-container


After that, things worked, although I saw some "Failed to..." messages, not sure if they are a problem or not:

$ sudo systemd-nspawn -bD lilydevos-0.1
sudo: unable to resolve host t440s
Spawning container lilydevos-0.1 on /home/paul/lilypond-world/LilyDevOS/lilydevos-0.1.
Press ^] three times within 1s to kill container.
Failed to create directory /home/paul/lilypond-world/LilyDevOS/lilydevos-0.1/sys/fs/selinux: Read-only file system Failed to create directory /home/paul/lilypond-world/LilyDevOS/lilydevos-0.1/sys/fs/selinux: Read-only file system systemd 233 running in system mode. (+PAM +AUDIT +SELINUX +IMA -APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ +LZ4 +SECCOMP +BLKID +ELFUTILS +KMOD +IDN default-hierarchy=hybrid)
Detected virtualization systemd-nspawn.
Detected architecture x86-64.

Welcome to Fedora 26 (Twenty Six)!

Set hostname to <lilydev>.
Initializing machine ID from random generator.
Failed to install release agent, ignoring: File exists
[  OK  ] Listening on /dev/initctl Compatibility Named Pipe.
[  OK  ] Listening on Journal Socket (/dev/log).
[  OK  ] Created slice User and Session Slice.
[  OK  ] Reached target Swap.
[  OK  ] Listening on Process Core Dump Socket.
[  OK  ] Created slice System Slice.
[  OK  ] Created slice system-getty.slice.
         Mounting Huge Pages File System...
         Mounting FUSE Control File System...
[  OK  ] Reached target Slices.
         Mounting POSIX Message Queue File System...
[  OK  ] Listening on Journal Socket.
[  OK  ] Reached target Local File Systems (Pre).
[  OK  ] Reached target Local File Systems.
         Starting Rebuild Journal Catalog...
[  OK  ] Started Forward Password Requests to Wall Directory Watch.
         Starting Rebuild Dynamic Linker Cache...
[  OK  ] Started Dispatch Password Requests to Console Directory Watch.
[  OK  ] Reached target Paths.
[  OK  ] Reached target Encrypted Volumes.
         Starting Create System Users...
         Starting Journal Service...
[  OK  ] Reached target Remote File Systems.
[  OK  ] Mounted FUSE Control File System.
[  OK  ] Mounted POSIX Message Queue File System.
[  OK  ] Mounted Huge Pages File System.
[  OK  ] Started Create System Users.
[  OK  ] Started Journal Service.
         Starting Flush Journal to Persistent Storage...
[  OK  ] Started Rebuild Journal Catalog.
[  OK  ] Started Flush Journal to Persistent Storage.
         Starting Create Volatile Files and Directories...
[  OK  ] Started Create Volatile Files and Directories.
         Starting Update UTMP about System Boot/Shutdown...
[  OK  ] Started Update UTMP about System Boot/Shutdown.
[  OK  ] Started Rebuild Dynamic Linker Cache.
         Starting Update is Completed...
[  OK  ] Started Update is Completed.
[  OK  ] Reached target System Initialization.
[  OK  ] Listening on D-Bus System Message Bus Socket.
[  OK  ] Reached target Sockets.
[  OK  ] Started Daily Cleanup of Temporary Directories.
[  OK  ] Started dnf makecache timer.
[  OK  ] Reached target Timers.
[  OK  ] Reached target Basic System.
         Starting Permit User Sessions...
[  OK  ] Started D-Bus System Message Bus.
         Starting Login Service...
[  OK  ] Started Permit User Sessions.
[  OK  ] Started Console Getty.
[  OK  ] Reached target Login Prompts.
[  OK  ] Started Login Service.
[  OK  ] Reached target Multi-User System.
[  OK  ] Reached target Graphical Interface.
         Starting Update UTMP about System Runlevel Changes...
[  OK  ] Started Update UTMP about System Runlevel Changes.

Fedora 26 (Twenty Six)
Kernel 4.4.0-83-generic on an x86_64 (console)

lilydev login:


Next I found that the uid for the dev user in the container was not the same as my host user uid, so I wasn't able to access the files from the host user account. But I was able to use the instructions in this blog post to change the dev user uid and that fixed it:
https://muffinresearch.co.uk/linux-changing-uids-and-gids-for-user/

And I was able to successfully build lilypond in the container. (Look mom, no VM!)

So this is really nice. I can edit files using my usual desktop environment and text editor, then just do git and git-cl via the command line in the container.

One other minor thing is I noticed that trying to run gitk in the container doesn't work:

$ gitk
application-specific initialization failed: no display name and no $DISPLAY environment variable Error in startup script: no display name and no $DISPLAY environment variable
    while executing
"load /usr/lib64/libtk8.6.so Tk"
    ("package ifneeded Tk 8.6.6" script)
    invoked from within
"package require Tk"
    (file "/usr/bin/gitk" line 10)

But, it works to run it from a terminal in the host account.

Also, the authentication in git-cl opens a web page in a browser so I'm not sure how that will work from the container?

Anyway, thanks for your work on this! It will be really nice not to have the overhead of a VM.

-Paul


_______________________________________________
lilypond-devel mailing list
lilypond-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-devel

Reply via email to