Author: Ish Sookun

  • Podman – unable to pull image

    Today, while pulling the latest Nextcloud container image from the docker.io repository I noticed that it is failing. Looking at the read: connection reset by peer error I assume it could be primarily due to network failure; maybe poor quality of the connection.

    Note that Mauritius is far from “everywhere” else and connectivity issues are nothing new.

    ish@coffee-bar:~> podman pull docker.io/library/nextcloud
    Trying to pull docker.io/library/nextcloud...
    Getting image source signatures
    Copying blob e0276193a084 done  
    Copying blob eb2d00c10344 done  
    Copying blob 3a60f364b0c5 done  
    Copying blob e0d3d1244592 done  
    Copying blob f54006e0dc29 done  
    Copying blob 8559a31e96f4 done  
    Copying blob b22875b95a2a done  
    Copying blob f65316e96b10 done  
    Copying blob 3e309988c00b done  
    Copying blob 0c78caf16ec3 [======================================] 13.1MiB / 13.2MiB
    Copying blob 4fc30aae7ee5 done  
    Copying blob 37b016cacdc6 done  
    Copying blob fd56bf3cc539 done  
    Copying blob e3cd35f544b5 done  
    Copying blob 467fea8f6f80 done  
    Copying blob 0dc7444f9282 done  
    Copying blob 547ae6684264 done  
    Copying blob 3139b6de5be7 done  
    Copying blob 00e77223b529 done  
    Copying blob 2b37e3b3a856 done  
      read tcp 192.168.100.6:33536->104.18.124.25:443: read: connection reset by peer
    Error: error pulling image "docker.io/library/nextcloud": unable to pull docker.io/library/nextcloud: unable to pull image: Error writing blob: error storing blob to file "/var/tmp/storage720474498/10": read tcp 192.168.100.6:33536->104.18.124.25:443: read: connection reset by peer
    

    Podman does not retry to copy the image in case of failures.

    A few days ago there was a suggestion to implement a similar feature in Podman that is present in Buildah, which provides the image copy retry functionality.

    For the curious, the implementation can be seen here.

    Container images that are pulled by Buildah are stored in the local repository which can also by accessed by Podman, so that’s an advantage. I tried pulling the Nextcloud container image using Buildah and it completed successfully.

    ish@coffee-bar:~> buildah pull nextcloud
    Getting image source signatures
    Copying blob e0d3d1244592 done  
    Copying blob 8559a31e96f4 done  
    Copying blob eb2d00c10344 done  
    Copying blob 3a60f364b0c5 done  
    Copying blob f54006e0dc29 done  
    Copying blob e0276193a084 done  
    Copying blob f65316e96b10 done  
    Copying blob b22875b95a2a done  
    Copying blob 3e309988c00b done  
    Copying blob 0c78caf16ec3 done  
    Copying blob 4fc30aae7ee5 done  
    Copying blob 37b016cacdc6 done  
    Copying blob e3cd35f544b5 done  
    Copying blob fd56bf3cc539 done  
    Copying blob 467fea8f6f80 done  
    Copying blob 0dc7444f9282 done  
    Copying blob 547ae6684264 done  
    Copying blob 2b37e3b3a856 done  
    Copying blob 00e77223b529 done  
    Copying blob 3139b6de5be7 done  
    Copying config 327476ebe3 done  
    Writing manifest to image destination
    Storing signatures
    327476ebe3280c7b570d8463edd136956eab120959976b643cb7dbfaa73f98c1

    Now, the downloaded container image is also accessible by Podman.

    ish@coffee-bar:~> podman images
    REPOSITORY                     TAG      IMAGE ID       CREATED        SIZE
    docker.io/libreoffice/online   latest   0586fecfa3c1   28 hours ago   2.84 GB
    docker.io/library/nextcloud    latest   327476ebe328   3 days ago     774 MB

    To conclude, while we are waiting that a retryCopyImage function is available in Podman, we can use Buildah to pull container images that are troublesome due to network issues.

  • Running Flatpak on openSUSE Leap the first time

    Flatpak comes pre-installed in openSUSE Leap 15.2. However, executing the flatpak command for the first time had a minor quirk in a freshly installed Leap 15.2 machine.

    error: While opening repository /var/lib/flatpak/repo: opendir(objects): No such file or directory

    I see other users commenting about this on Reddit. So, for now, just remove the repo file.

    sudo rmdir /var/lib/flatpak/repo

    Then, add the Flathub repository as its documentation describes.

    flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo

    Voilà! Now, you may search apps and install them with the flatpak command. For example, if you would search for Visual Studio Code, you would do:

    flatpak search code

    Find its Application Id from the result obtained with the above command and install it as follows:

    flatpak install flathub com.visualstudio.code

    The installation command arguments format is:

    flatpak install repo_name application_id

    In order to remove an application that you previously installed through Flatpak, just replace install by remove followed by the Application Id and it’s done.

  • A quick intro to Podman by Estu Fardani

    Estu Fardani is a helpful & jovial fellow whom I met at the openSUSE Asia Summit last year in Bali, Indonesia. Recently, for the openSUSE Virtual Summit, Estu did a short presentation on Podman. His presentation video is available on YouTube and slides deck available on Google Slides.

    While I am not a fan of alias docker=podman I believe Estu added that part in his slide below to make the Podman transition a bit smoother for users already familiar with Docker commands.

    Slide from Estu’s presentation

    Note that the latest release of openSUSE Leap, i.e version 15.2, comes with support for Podman through the libcontainers-common package.

    Previously, if one needed to experiment with Podman and/or deploy in production then openSUSE Tumbleweed, Kubic or MicroOS were the supported choices. Now, one may deploy Podman containers on their existing Leap infrastructure (after upgrading to the latest version 15.2).

  • कुछ बातें openSUSE Leap 15.2 के बारे में जानें

    २ जुलाई २०२० को openSUSE Leap 15.2 संस्करण उपलब्ध हुआ।

    openSUSE Leap एक निशुल्क और लिनक्स-आधारित ऑपरेटिंग सिस्टम है जो आप अपने पीसी, लैपटॉप या सर्वर पर इस्तेमाल कर सकते है। Leap 15.2 और SUSE Linux Enterprise एक समान कोडबेस उपयोग करते है जिस से openSUSE Leap 15.2 की स्थिरता और ज्यादा मज़बूत होती है।

    यह विशेष संस्करण कृत्रिम बुद्धिमत्ता, यानी आर्टिफिशियल इंटेलिजेंस, को अधिक आसानी से सुलभ बनाता है। निम्नलिखित पैकेज ऑफिशल रिपॉजिटरीज से प्राप्त किए जा सकते हैं।

    इस संस्करण में अधिक कंटेनर टूलस् शामिल है, जैसे कि कुबनेटिस् (जो पहली बार के लिए Leap संस्करण में उपलब्ध हुआ है) हेल्म और सिल्यम

  • Convert .VOB files to .MP4

    I had a bunch of video files in the .VOB format which I copied from a few DVDs a couple of years back. Uploading them on a cloud storage service (e.g Google Drive, OneDrive etc) for safe keeping is nice but not practical since they cannot be played directly through the cloud service’s video player. The latter would play .MP4 video files.

    FFMPEG comes handy here to convert the video files.

    ffmpeg -i bla.vob -b:v 3000k -b:a 256k bla.mp4

    I used mediainfo to find the maximum video & audio bit rate.

    mediainfo bla.vob
  • Managing the Linux /home directory is about to change

    systemd 245 came out on the 6th of March 2020.

    In this release, among many changes brought, a notable one is that regarding how we see and think of the Linux /home directory. A new service systemd-homed.service has been added, whose role is to manage home directories.

    Traditionally, user information on Linux systems have recorded in the /etc/passwd and /etc/shadow files. The former contains details about the user name, id, group id, shell, home directory, among other details, while the latter contains the user password information.

    On the other hand systemd-homed.service stores user information in a ~/.identity file in JSON format. The choice of JSON was mainly due to its popularity and easiness to process with the majority of programming languages.

    Thus, every directory managed by systemd-homed.service contains both the user information and the user data.

    To create, remove or change home directories one would use the homectl command.

    $ sudo homectl create john --real-name="John Doe" -G wheel --disk-size=500M

    What if you could carry your home directory in a pendrive and work from any (Linux) machine as if you are “home” ?

    $ sudo homectl create john --real-name="John Doe" --image-path=/dev/disk/by-id/usb-SanDisk_Ultra_Fit_476fff954b2b5c44-0:0 --tasks-max=500

    The above command creates the user john in a pendrive and assigns a maximum of 500 concurrent task to him.

    systemd-homed.service also allows you to have an encrypted home directory, but that, I will write about on another day. 😉


    Twitter/Facebook card image source: auroria.io