Mike Slinn

Jekyll 4.2.2 with Ruby 3.1.0 on Ubuntu 22.04 Using Podman

Published 2022-05-15. Last modified 2024-02-13.
Time to read: 3 minutes.

This page is part of the jekyll collection.

I wanted to be able to walk readers through the Jekyll installation experience on Ubuntu 22.04/Jammy Jellyfish, but I had already installed it on all the machines that I wanted to. Podman to the rescue! Podman is a better Docker. I have written about Podman, Buildah and skopeo before.

Shell
$ podman info --debug
host:
arch: amd64
buildahVersion: 1.23.1
cgroupControllers: []
cgroupManager: cgroupfs
cgroupVersion: v1
conmon:
package: 'conmon: /usr/bin/conmon'
path: /usr/bin/conmon
version: 'conmon version 2.0.25, commit: unknown'
cpus: 12
distribution:
codename: jammy
distribution: ubuntu
version: "22.04"
eventLogger: file
hostname: camille
idMappings:
gidmap:
- container_id: 0
host_id: 1000
size: 1
- container_id: 1
host_id: 100000
size: 65536
uidmap:
- container_id: 0
host_id: 1000
size: 1
- container_id: 1
host_id: 100000
size: 65536
kernel: 5.10.102.1-microsoft-standard-WSL2
linkmode: dynamic
logDriver: k8s-file
memFree: 2914873344
memTotal: 6220324864
ociRuntime:
name: crun
package: 'crun: /usr/bin/crun'
path: /usr/bin/crun
version: |-
crun version 0.17
commit: 0e9229ae34caaebcb86f1fde18de3acaf18c6d9a
spec: 1.0.0
+SYSTEMD +SELINUX +APPARMOR +CAP +SECCOMP +EBPF +YAJL
os: linux
remoteSocket:
path: /tmp/podman-run-1000/podman/podman.sock
security:
apparmorEnabled: false
capabilities: CAP_CHOWN,CAP_DAC_OVERRIDE,CAP_FOWNER,CAP_FSETID,CAP_KILL,CAP_NET_BIND_SERVICE,CAP_SETFCAP,CAP_SETGID,CAP_SETPCAP,CAP_SETUID,CAP_SYS_CHROOT
rootless: true
seccompEnabled: true
seccompProfilePath: /usr/share/containers/seccomp.json
selinuxEnabled: false
serviceIsRemote: false
slirp4netns:
executable: /usr/bin/slirp4netns
package: 'slirp4netns: /usr/bin/slirp4netns'
version: |-
slirp4netns version 1.0.1
commit: 6a7b16babc95b6a3056b33fb45b74a6f62262dd4
libslirp: 4.6.1
swapFree: 0
swapTotal: 0
uptime: 72h 15m 5.89s (Approximately 3.00 days)
plugins:
log:
- k8s-file
- none
- journald
network:
- bridge
- macvlan
volume:
- local
registries:
search:
- quay.io
- docker.io
- registry.access.redhat.com
store:
configFile: /home/mslinn/.config/containers/storage.conf
containerStore:
number: 3
paused: 0
running: 0
stopped: 3
graphDriverName: overlay
graphOptions:
overlay.mount_program:
Executable: /usr/bin/fuse-overlayfs
Package: 'fuse-overlayfs: /usr/bin/fuse-overlayfs'
Version: |-
fusermount3 version: 3.10.5
fuse-overlayfs: version 1.7.1
FUSE library version 3.10.5
using FUSE kernel interface version 7.31
graphRoot: /home/mslinn/.local/share/containers/storage
graphStatus:
Backing Filesystem: extfs
Native Overlay Diff: "false"
Supports d_type: "true"
Using metacopy: "false"
imageStore:
number: 4
runRoot: /tmp/run-1000/containers
volumePath: /home/mslinn/.local/share/containers/storage/volumes
version:
APIVersion: 3.4.4
Built: 0
BuiltTime: Wed Dec 31 19:00:00 1969
GitCommit: ""
GoVersion: go1.17.3
OsArch: linux/amd64
Version: 3.4.4 

Using Podman to Create an Ubuntu Instance

Docker images for Ubuntu include ubuntu:jammy-20220421 for Ubuntu. The default Ubuntu image for Docker provides the currently shipping version. At the time this was written, that was Ubuntu 22.04 (Jammy Jellyfish). Here is how to download and install an instance of that image, using Podman:

Shell
$ podman pull docker.io/library/ubuntu
Trying to pull docker.io/library/ubuntu:latest...
Getting image source signatures
Copying blob 8527c5f86ecc done
Copying config 3f4714ee06 done
Writing manifest to image destination
Storing signatures
3f4714ee068a59a09d9e77de71ec1254e5916d6e5779140bc96cec7d0edea18d 

To download a specific version of Ubuntu:

Shell
$ podman image pull ubuntu:22.04
Resolved "ubuntu" as an alias (/etc/containers/registries.conf.d/shortnames.conf)
Trying to pull docker.io/library/ubuntu:22.04...
Getting image source signatures
Copying blob 125a6e411906 done
Copying config d2e4e1f511 done
Writing manifest to image destination
Storing signatures
d2e4e1f511320dfb2d0baff2468fcf0526998b73fe10c8890b4684bb7ef8290f 

Now to review the list of images my machine had at that point:

Shell
$ podman image list --all
REPOSITORY                     TAG         IMAGE ID      CREATED        SIZE
docker.io/library/ubuntu       22.04       d2e4e1f51132  20 hours ago   80.3 MB
docker.io/library/ubuntu       latest      3f4714ee068a  8 days ago     80.3 MB
public.ecr.aws/lambda/python   latest      e12ea62c5582  12 months ago  622 MB
public.ecr.aws/lambda/python   3.8         e12ea62c5582  12 months ago  622 MB
docker.io/library/hello-world  latest      d1165f221234  14 months ago  20 kB 

Following is an example of running a single Bash command on the Ubuntu Jammy Jellyfish image:

Shell
$ podman run docker.io/library/ubuntu cat /etc/os-release
PRETTY_NAME="Ubuntu 22.04 LTS"
NAME="Ubuntu"
VERSION_ID="22.04"
VERSION="22.04 (Jammy Jellyfish)"
VERSION_CODENAME=jammy
ID=ubuntu
ID_LIKE=debian
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
UBUNTU_CODENAME=jammy 

I created a new directory that will exclusively be used for sharing files with the container that will be built from the recently downloaded image. The directory, jekyll_test, has the same name as the container that will be created:

Shell
$ mkdir ~/jekyll_test

The podman run command has the same functions as docker run. The options that follow the command depend on the type of container being run. Here is the help message:

Shell
$ 

I found this information to be helpful.

Creating a Podman Container

This is how I created a new container called jekyll_test from the image, and ran it. Notice that the shared directory is mounted in the container at ~/jekyll_test.

Shell
$ podman run --interactive --tty \
  --name jekyll_test \
  --volume /home/$(whoami)/jekyll_test:/mnt \
  ubuntu:22.04

Here is proof that Ruby is not provided by default in the Ubuntu image, so it is also not present in the new container (yet). Notice that the prompt has changed because the ‑‑interactive ‑‑tty options were used for the podman run command above. The changed prompt emphasizes that the shell is connected to the container:

Shell
root@3339a4f91fcc:/# ruby --version
bash: ruby: command not found 
root@3339a4f91fcc:/# rbenv bash: rbenv: command not found

Apt has never been run in this container, so it needs to learn the available packages:

Shell
$ apt update
Get:1 http://archive.ubuntu.com/ubuntu jammy InRelease [270 kB]
Get:2 http://security.ubuntu.com/ubuntu jammy-security InRelease [110 kB]
Get:3 http://archive.ubuntu.com/ubuntu jammy-updates InRelease [109 kB]
Get:4 http://archive.ubuntu.com/ubuntu jammy-backports InRelease [90.7 kB]
Get:5 http://archive.ubuntu.com/ubuntu jammy/universe amd64 Packages [17.5 MB]
Get:6 http://archive.ubuntu.com/ubuntu jammy/multiverse amd64 Packages [266 kB]
Get:7 http://archive.ubuntu.com/ubuntu jammy/restricted amd64 Packages [164 kB]
Get:8 http://archive.ubuntu.com/ubuntu jammy/main amd64 Packages [1792 kB]
Get:9 http://archive.ubuntu.com/ubuntu jammy-updates/universe amd64 Packages [20.3 kB]
Get:10 http://archive.ubuntu.com/ubuntu jammy-updates/restricted amd64 Packages [61.3 kB]
Get:11 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 Packages [72.0 kB]
Get:12 http://security.ubuntu.com/ubuntu jammy-security/restricted amd64 Packages [61.3 kB]
Get:13 http://security.ubuntu.com/ubuntu jammy-security/main amd64 Packages [66.2 kB]
Get:14 http://security.ubuntu.com/ubuntu jammy-security/universe amd64 Packages [13.7 kB]
Fetched 20.6 MB in 2s (9102 kB/s)
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
All packages are up to date. 

Now git, ruby-full and rbenv can be installed.

Ubuntu 23.04 (Lunar Lobster) Update: libyaml-dev must be specified or psych, which is a transitive dependency of debug, will not be able to be installed.

Shell
root@3339a4f91fcc:/# apt install git rbenv ruby-full libyaml-dev
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
  binutils binutils-common binutils-x86-64-linux-gnu build-essential bzip2 ca-certificates cpp cpp-11 curl dirmngr
  dpkg-dev fakeroot fontconfig-config fonts-dejavu-core fonts-lato g++ g++-11 gcc gcc-11 gcc-11-base gnupg gnupg-l10n
  gnupg-utils gpg gpg-agent gpg-wks-client gpg-wks-server gpgconf gpgsm icu-devtools javascript-common
  libalgorithm-diff-perl libalgorithm-diff-xs-perl libalgorithm-merge-perl libasan6 libassuan0 libatomic1 libbinutils
  libbrotli1 libbsd0 libc-dev-bin libc-devtools libc6-dev libcc1-0 libcrypt-dev libctf-nobfd0 libctf0 libcurl4
  libdeflate0 libdpkg-perl libedit2 libexpat1 libfakeroot libfile-fcntllock-perl libfontconfig1 libfreetype6
  libgcc-11-dev libgd3 libgdbm-compat4 libgdbm6 libgomp1 libicu-dev libicu70 libisl23 libitm1 libjbig0 libjpeg-turbo8
  libjpeg8 libjs-jquery libksba8 libldap-2.5-0 libldap-common liblocale-gettext-perl liblsan0 libmd0 libmpc3 libmpfr6
  libncurses-dev libnghttp2-14 libnpth0 libnsl-dev libperl5.34 libpng16-16 libpsl5 libquadmath0 libreadline-dev
  libreadline8 librtmp1 libruby3.0 libsasl2-2 libsasl2-modules libsasl2-modules-db libsqlite3-0 libsqlite3-dev
  libssh-4 libssl-dev libstdc++-11-dev libtiff5 libtirpc-dev libtsan0 libubsan1 libwebp7 libx11-6 libx11-data libxau6
  libxcb1 libxdmcp6 libxml2 libxml2-dev libxpm4 libxslt1-dev libxslt1.1 libyaml-0-2 linux-libc-dev lto-disabled-list
  make manpages manpages-dev netbase openssl patch perl perl-modules-5.34 pinentry-curses publicsuffix rake
  readline-common rpcsvc-proto ruby ruby-build ruby-net-telnet ruby-rubygems ruby-xmlrpc ruby3.0 rubygems-integration
  ucf unzip xz-utils zip zlib1g-dev
Suggested packages:
  binutils-doc bzip2-doc cpp-doc gcc-11-locales dbus-user-session libpam-systemd pinentry-gnome3 tor debian-keyring
  g++-multilib g++-11-multilib gcc-11-doc gcc-multilib autoconf automake libtool flex bison gdb gcc-doc
  gcc-11-multilib parcimonie xloadimage scdaemon apache2 | lighttpd | httpd glibc-doc git bzr libgd-tools gdbm-l10n
  icu-doc ncurses-doc readline-doc libsasl2-modules-gssapi-mit | libsasl2-modules-gssapi-heimdal libsasl2-modules-ldap
  libsasl2-modules-otp libsasl2-modules-sql sqlite3-doc libssl-doc libstdc++-11-doc pkg-config make-doc man-browser ed
  diffutils-doc perl-doc libterm-readline-gnu-perl | libterm-readline-perl-perl libtap-harness-archive-perl
  pinentry-doc ri ruby-dev git-core bundler
The following NEW packages will be installed:
  binutils binutils-common binutils-x86-64-linux-gnu build-essential bzip2 ca-certificates cpp cpp-11 curl dirmngr
  dpkg-dev fakeroot fontconfig-config fonts-dejavu-core fonts-lato g++ g++-11 gcc gcc-11 gcc-11-base gnupg gnupg-l10n
  gnupg-utils gpg gpg-agent gpg-wks-client gpg-wks-server gpgconf gpgsm icu-devtools javascript-common
  libalgorithm-diff-perl libalgorithm-diff-xs-perl libalgorithm-merge-perl libasan6 libassuan0 libatomic1 libbinutils
  libbrotli1 libbsd0 libc-dev-bin libc-devtools libc6-dev libcc1-0 libcrypt-dev libctf-nobfd0 libctf0 libcurl4
  libdeflate0 libdpkg-perl libedit2 libexpat1 libfakeroot libfile-fcntllock-perl libfontconfig1 libfreetype6
  libgcc-11-dev libgd3 libgdbm-compat4 libgdbm6 libgomp1 libicu-dev libicu70 libisl23 libitm1 libjbig0 libjpeg-turbo8
  libjpeg8 libjs-jquery libksba8 libldap-2.5-0 libldap-common liblocale-gettext-perl liblsan0 libmd0 libmpc3 libmpfr6
  libncurses-dev libnghttp2-14 libnpth0 libnsl-dev libperl5.34 libpng16-16 libpsl5 libquadmath0 libreadline-dev
  libreadline8 librtmp1 libruby3.0 libsasl2-2 libsasl2-modules libsasl2-modules-db libsqlite3-0 libsqlite3-dev
  libssh-4 libssl-dev libstdc++-11-dev libtiff5 libtirpc-dev libtsan0 libubsan1 libwebp7 libx11-6 libx11-data libxau6
  libxcb1 libxdmcp6 libxml2 libxml2-dev libxpm4 libxslt1-dev libxslt1.1 libyaml-0-2 linux-libc-dev lto-disabled-list
  make manpages manpages-dev netbase openssl patch perl perl-modules-5.34 pinentry-curses publicsuffix rake rbenv
  readline-common rpcsvc-proto ruby ruby-build ruby-net-telnet ruby-rubygems ruby-xmlrpc ruby3.0 rubygems-integration
  ucf unzip xz-utils zip zlib1g-dev
0 upgraded, 141 newly installed, 0 to remove and 0 not upgraded.
Need to get 123 MB of archives.
After this operation, 446 MB of additional disk space will be used.
Do you want to continue? [Y/n] Y
... lots of output ... 

I needed to take a break and do something else. To stop the jekyll_test container, type:

Shell
$ podman stop jekyll_test
jekyll_test 

Just before taking a break, I wanted to list all the containers on this machine, running or not:

Shell
$ podman ps -a
CONTAINER ID  IMAGE                            COMMAND               CREATED         STATUS            PORTS       NAMES
3339a4f91fcc  docker.io/library/ubuntu:22.04   bash                  4 days ago      Up 6 seconds ago              jekyll_test 

Restarting a Container

A container can be started and stopped. Here is the help message:

Shell
$ 

To restart this container in the foreground and attach the console to a container shell for command-line input, use the podman start ‑ia option:

Shell
$ podman start -ia jekyll_test

To run a Podman container in the background, use the ‑dt option, just like Docker.

Installing Ruby

Following the steps I previously described in Setting Up a Ruby Development Environment, I added rbenv to PATH

Shell
root@3339a4f91fcc:/# echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc %}

Initialize rbenv, and activate it in the current shell:

Shell
root@3339a4f91fcc:/# rbenv init
# Load rbenv automatically by appending
# the following to ~/.bashrc:
eval "$(rbenv init -)"

root@3339a4f91fcc:/# eval "$(rbenv init -)" %}

I made a directory for ruby-build and installed it:

Shell
root@3339a4f91fcc:/# mkdir -p "$(rbenv root)"/plugins
root@3339a4f91fcc:/# git clone https://github.com/rbenv/ruby-build.git \ "$(rbenv root)"/plugins/ruby-build Cloning into '/root/.rbenv/plugins/ruby-build'... remote: Enumerating objects: 12195, done. remote: Counting objects: 100% (888/888), done. remote: Compressing objects: 100% (302/302), done. remote: Total 12195 (delta 604), reused 773 (delta 529), pack-reused 11307 Receiving objects: 100% (12195/12195), 2.54 MiB | 6.99 MiB/s, done. Resolving deltas: 100% (8071/8071), done.

Now we can actually install Ruby 3.1.0. This takes about 5 minutes on my super-fast laptop:

Shell
root@3339a4f91fcc:/# rbenv install 3.1.0
Downloading ruby-3.1.0.tar.gz...
-> https://cache.ruby-lang.org/pub/ruby/3.1/ruby-3.1.0.tar.gz
Installing ruby-3.1.0...
Installed ruby-3.1.0 to /root/.rbenv/versions/3.1.0 
root@3339a4f91fcc:/# rbenv global 3.1.0
root@3339a4f91fcc:/# rbenv rehash

Now gems can be installed into the currently active Ruby instance.

Shell
root@3339a4f91fcc:/# gem install bundler rake rspec rubocop
Fetching bundler-2.3.12.gem
Successfully installed bundler-2.3.12
Parsing documentation for bundler-2.3.12
Installing ri documentation for bundler-2.3.12
Done installing documentation for bundler after 0 seconds
Successfully installed rake-13.0.6
Parsing documentation for rake-13.0.6
Installing ri documentation for rake-13.0.6
Done installing documentation for rake after 0 seconds
Fetching rspec-core-3.11.0.gem
Fetching rspec-expectations-3.11.0.gem
Fetching diff-lcs-1.5.0.gem
Fetching rspec-3.11.0.gem
Fetching rspec-mocks-3.11.1.gem
Fetching rspec-support-3.11.0.gem
Successfully installed rspec-support-3.11.0
Successfully installed diff-lcs-1.5.0
Successfully installed rspec-mocks-3.11.1
Successfully installed rspec-expectations-3.11.0
Successfully installed rspec-core-3.11.0
Successfully installed rspec-3.11.0
Parsing documentation for rspec-support-3.11.0
Installing ri documentation for rspec-support-3.11.0
Parsing documentation for diff-lcs-1.5.0
Installing ri documentation for diff-lcs-1.5.0
Parsing documentation for rspec-mocks-3.11.1
Installing ri documentation for rspec-mocks-3.11.1
Parsing documentation for rspec-expectations-3.11.0
Installing ri documentation for rspec-expectations-3.11.0
Parsing documentation for rspec-core-3.11.0
Installing ri documentation for rspec-core-3.11.0
Parsing documentation for rspec-3.11.0
Installing ri documentation for rspec-3.11.0
Done installing documentation for rspec-support, diff-lcs, rspec-mocks, rspec-expectations, rspec-core, rspec after 4 seconds
Fetching unicode-display_width-2.1.0.gem
Fetching rainbow-3.1.1.gem
Fetching regexp_parser-2.3.1.gem
Fetching rubocop-ast-1.17.0.gem
Fetching ruby-progressbar-1.11.0.gem
Fetching parser-3.1.2.0.gem
Fetching ast-2.4.2.gem
Fetching parallel-1.22.1.gem
Fetching rubocop-1.28.2.gem
Successfully installed unicode-display_width-2.1.0
Successfully installed ruby-progressbar-1.11.0
Successfully installed ast-2.4.2
Successfully installed parser-3.1.2.0
Successfully installed rubocop-ast-1.17.0
Successfully installed regexp_parser-2.3.1
Successfully installed rainbow-3.1.1
Successfully installed parallel-1.22.1
Successfully installed rubocop-1.28.2
Parsing documentation for unicode-display_width-2.1.0
Installing ri documentation for unicode-display_width-2.1.0
Parsing documentation for ruby-progressbar-1.11.0
Installing ri documentation for ruby-progressbar-1.11.0
Parsing documentation for ast-2.4.2
Installing ri documentation for ast-2.4.2
Parsing documentation for parser-3.1.2.0
Installing ri documentation for parser-3.1.2.0
Parsing documentation for rubocop-ast-1.17.0
Installing ri documentation for rubocop-ast-1.17.0
Parsing documentation for regexp_parser-2.3.1
Installing ri documentation for regexp_parser-2.3.1
Parsing documentation for rainbow-3.1.1
Installing ri documentation for rainbow-3.1.1
Parsing documentation for parallel-1.22.1
Installing ri documentation for parallel-1.22.1
Parsing documentation for rubocop-1.28.2
Installing ri documentation for rubocop-1.28.2
Done installing documentation for unicode-display_width, ruby-progressbar, ast, parser, rubocop-ast, regexp_parser, rainbow, parallel, rubocop after 29 seconds
17 gems installed 

Jekyll processes can now be launched in the Podman container, as I previously discussed.

Podman Desktop Companion

The Podman Desktop Companion is a very new program that allows you to control Podman using a GUI instead of a command line. I downloaded and early version from GitHub as a release:

Shell
$ wget -O ~/Downloads/podman-desktop-companion-amd64-4.0.3-rc.5.deb \
  https://github.com/iongion/podman-desktop-companion/releases/download/4.0.3-rc.5/podman-desktop-companion-amd64-4.0.3-rc.5.deb

Now I installed Podman Desktop Companion. This is the same for native Ubuntu and WSL/WSL2:

Shell
$ sudo dpkg -i ~/Downloads/podman-desktop-companion-amd64-4.0.3-rc.5.deb
Selecting previously unselected package podman-desktop-companion.
(Reading database ... 114566 files and directories currently installed.)
Preparing to unpack .../podman-desktop-companion-amd64-4.0.3-rc.5.deb ...
Unpacking podman-desktop-companion (4.0.3-rc.5) ...
Setting up podman-desktop-companion (4.0.3-rc.5) ...
Processing triggers for mailcap (3.70+nmu1ubuntu1) ...
Processing triggers for gnome-menus (3.36.0-1ubuntu3) ...
Processing triggers for desktop-file-utils (0.26-1ubuntu3) ...
Processing triggers for hicolor-icon-theme (0.17-2) ... 

When I ran the Podman Desktop Companion lots of serious-looking error messages appeared on my WSL2 console.

Shell
$ podman-desktop-companion &
[16383:0429/150603.405955:ERROR:bus.cc(397)] Failed to connect to the bus: Failed to connect to socket /run/dbus/system_bus_socket: No such file or directory
[16383:0429/150603.406087:ERROR:bus.cc(397)] Failed to connect to the bus: Failed to connect to socket /run/dbus/system_bus_socket: No such file or directory
[16383:0429/150603.410584:ERROR:bus.cc(397)] Failed to connect to the bus: Could not parse server address: Unknown address type (examples of valid types are "tcp" and on UNIX "unix")
[16383:0429/150603.410655:ERROR:bus.cc(397)] Failed to connect to the bus: Could not parse server address: Unknown address type (examples of valid types are "tcp" and on UNIX "unix")
[16411:0429/150603.560734:ERROR:angle_platform_impl.cc(44)] Display.cpp:966 (initialize): ANGLE Display::initialize error 12289: OpenGL ES 2.0 is not supportable.
[16411:0429/150603.561041:ERROR:gl_surface_egl.cc(808)] EGL Driver message (Critical) eglInitialize: OpenGL ES 2.0 is not supportable.
[16411:0429/150603.561256:ERROR:gl_surface_egl.cc(1430)] eglInitialize OpenGL failed with error EGL_NOT_INITIALIZED, trying next display type
[16411:0429/150603.565556:ERROR:angle_platform_impl.cc(44)] Display.cpp:966 (initialize): ANGLE Display::initialize error 12289: Could not create a backing OpenGL context.
[16411:0429/150603.565793:ERROR:gl_surface_egl.cc(808)] EGL Driver message (Critical) eglInitialize: Could not create a backing OpenGL context.
[16411:0429/150603.566024:ERROR:gl_surface_egl.cc(1430)] eglInitialize OpenGLES failed with error EGL_NOT_INITIALIZED
[16411:0429/150603.566214:ERROR:gl_ozone_egl.cc(20)] GLSurfaceEGL::InitializeOneOff failed.
[16411:0429/150603.568594:ERROR:viz_main_impl.cc(188)] Exiting GPU process due to errors during initialization
[16383:0429/150603.680394:ERROR:bus.cc(397)] Failed to connect to the bus: Could not parse server address: Unknown address type (examples of valid types are "tcp" and on UNIX "unix")
[16428:0429/150603.877825:ERROR:angle_platform_impl.cc(44)] Display.cpp:966 (initialize): ANGLE Display::initialize error 12289: OpenGL ES 2.0 is not supportable.
[16428:0429/150603.878162:ERROR:gl_surface_egl.cc(808)] EGL Driver message (Critical) eglInitialize: OpenGL ES 2.0 is not supportable.
[16428:0429/150603.878412:ERROR:gl_surface_egl.cc(1430)] eglInitialize OpenGL failed with error EGL_NOT_INITIALIZED, trying next display type
[16428:0429/150603.882654:ERROR:angle_platform_impl.cc(44)] Display.cpp:966 (initialize): ANGLE Display::initialize error 12289: Could not create a backing OpenGL context.
[16428:0429/150603.882972:ERROR:gl_surface_egl.cc(808)] EGL Driver message (Critical) eglInitialize: Could not create a backing OpenGL context.
[16428:0429/150603.883179:ERROR:gl_surface_egl.cc(1430)] eglInitialize OpenGLES failed with error EGL_NOT_INITIALIZED
[16428:0429/150603.883404:ERROR:gl_ozone_egl.cc(20)] GLSurfaceEGL::InitializeOneOff failed.
[16428:0429/150603.886468:ERROR:viz_main_impl.cc(188)] Exiting GPU process due to errors during initialization
libva error: vaGetDriverNameByIndex() failed with unknown libva error, driver_name = (null)
[16457:0429/150604.049100:ERROR:sandbox_linux.cc(377)] InitializeSandbox() called with multiple threads in process gpu-process.
[16457:0429/150604.053669:ERROR:gpu_memory_buffer_support_x11.cc(44)] dri3 extension not supported.
[16427:0429/150604.219893:ERROR:command_buffer_proxy_impl.cc(125)] ContextResult::kTransientFailure: Failed to send GpuControl.CreateCommandBuffer.
15:06:04.728 › Checking if native API is running - fail Socket file not present in /tmp/podman-desktop-companion-podman-rest-api.sock
15:06:05.677 › Checking if native API is running - fail Socket file not present in /tmp/podman-desktop-companion-podman-rest-api.sock 

However, the program started up and seemed to do reasonable things.

I found that it was disappointing to work on a program that did not have a window manager associated with it. That meant the window was fixed in position and size, in the middle of my desktop.

I then started up GWSL and relaunched podman-desktop-companion. I had expected podman-desktop-companion to become more responsive, but it did not. After participating in a GitHub issue discussion I learned that a new version, specially designed for WSL, just became available.

Hi, try the latest version 4.1.0-rc.11 – normally it should be able to recognize both environments or let you customize. Install the one native for Windows.

I just released it and I would need a hand to test a bit if you are kind.

For the Windows app to be able to connect to WSL Ubuntu podman socket api, I am using relaying so you will need to install socat in the distribution before starting Podman Desktop Companion.

Shell
$ sudo apt-get install socat

I look forward to trying the new version.



* indicates a required field.

Please select the following to receive Mike Slinn’s newsletter:

You can unsubscribe at any time by clicking the link in the footer of emails.

Mike Slinn uses Mailchimp as his marketing platform. By clicking below to subscribe, you acknowledge that your information will be transferred to Mailchimp for processing. Learn more about Mailchimp’s privacy practices.