From Fedora Project Wiki
Description
This testcase ensures it's possible to use package layering features of rpm-ostree
Setup
- Ensure you have a booted working Atomic Host
How to test
- Install the 'wget' package
# rpm-ostree install wget Checking out tree 7130f87... done Enabled rpm-md repositories: updates-modular fedora-cisco-openh264 updates-testing fedora-modular updates-testing-modular fedora updates Updating metadata for 'updates-modular'... done rpm-md repo 'updates-modular'; generated: 2018-02-20T19:18:14Z Updating metadata for 'fedora-cisco-openh264'... done rpm-md repo 'fedora-cisco-openh264'; generated: 2020-03-17T20:10:45Z Updating metadata for 'updates-testing'... done rpm-md repo 'updates-testing'; generated: 2020-04-08T01:53:56Z Updating metadata for 'fedora-modular'... done rpm-md repo 'fedora-modular'; generated: 2020-04-08T10:10:31Z Updating metadata for 'updates-testing-modular'... done rpm-md repo 'updates-testing-modular'; generated: 2020-04-04T04:40:09Z Updating metadata for 'fedora'... done rpm-md repo 'fedora'; generated: 2020-04-07T11:26:29Z Updating metadata for 'updates'... done rpm-md repo 'updates'; generated: 2018-02-20T19:18:14Z Importing rpm-md... done Resolving dependencies... done Will download: 1 package (815.9?kB) Downloading from 'updates-testing'... done Importing packages... done Checking out packages... done Running pre scripts... done Running post scripts... done Running posttrans scripts... done Writing rpmdb... done Writing OSTree commit... done Staging deployment... done Added: wget-1.20.3-4.fc32.x86_64 Run "systemctl reboot" to start a reboot
- Reboot the system
- Verify that the 'wget' package is layered succesfully and usable
rpm-ostree status State: idle; auto updates disabled Deployments: ● ostree://fedora-atomic:fedora/28/x86_64/atomic-host Version: 28_Beta.1.3 (2018-03-28 22:24:38) BaseCommit: ba6371389226223fb8ba055fb02b92febf4d00e1ccd435cc21cba6af19088c73 GPGSignature: Valid signature by 128CF232A9371991C8A65695E08E7E629DB62FB1 LayeredPackages: wget ostree://fedora-atomic:fedora/28/x86_64/atomic-host Version: 28_Beta.1.3 (2018-03-28 22:24:38) Commit: ba6371389226223fb8ba055fb02b92febf4d00e1ccd435cc21cba6af19088c73 GPGSignature: Valid signature by 128CF232A9371991C8A65695E08E7E629DB62FB1 # rpm -q wget wget-1.19.4-2.fc28.x86_64 # wget --version GNU Wget 1.19.4 built on linux-gnu. -cares +digest +gpgme +https +ipv6 +iri +large-file +metalink +nls +ntlm +opie +psl +ssl/gnutls ...
- Install 'httpd' which pulls in multiple dependencies
# rpm-ostree install httpd Checking out tree ba63713... done Enabled rpm-md repositories: updates-testing updates fedora rpm-md repo 'updates-testing' (cached); generated: 2018-04-10 22:36:28 rpm-md repo 'updates' (cached); generated: 2018-02-20 19:18:14 rpm-md repo 'fedora' (cached); generated: 2018-04-09 12:06:38 Importing metadata [=============] 100% Resolving dependencies... done Will download: 9 packages (2.3 MB) Downloading from fedora: [=============] 100% Downloading from updates-testing: [=============] 100% Importing (9/9) [=============] 100% Applying 10 overlays Building filesystem (10/10) [=============] 100% Running pre scripts... 1 done Running post scripts... 10 done Writing rpmdb... done Writing OSTree commit... done Copying /etc changes: 21 modified, 0 removed, 71 added Transaction complete; bootconfig swap: no deployment count change: 0 Added: apr-1.6.3-5.fc28.x86_64 apr-util-1.6.1-5.fc28.x86_64 brotli-1.0.1-3.fc28.x86_64 fedora-logos-httpd-28.0.2-3.fc28.noarch httpd-2.4.33-2.fc28.x86_64 httpd-filesystem-2.4.33-2.fc28.noarch httpd-tools-2.4.33-2.fc28.x86_64 mailcap-2.1.48-3.fc28.noarch mod_http2-1.10.16-1.fc28.x86_64 Run "systemctl reboot" to start a reboot
- Reboot host
- Verify that 'wget' is still layered and 'httpd' is also layered with dependencies
# rpm-ostree status State: idle; auto updates disabled Deployments: ● ostree://fedora-atomic:fedora/28/x86_64/atomic-host Version: 28_Beta.1.3 (2018-03-28 22:24:38) BaseCommit: ba6371389226223fb8ba055fb02b92febf4d00e1ccd435cc21cba6af19088c73 GPGSignature: Valid signature by 128CF232A9371991C8A65695E08E7E629DB62FB1 LayeredPackages: httpd wget ostree://fedora-atomic:fedora/28/x86_64/atomic-host Version: 28_Beta.1.3 (2018-03-28 22:24:38) BaseCommit: ba6371389226223fb8ba055fb02b92febf4d00e1ccd435cc21cba6af19088c73 GPGSignature: Valid signature by 128CF232A9371991C8A65695E08E7E629DB62FB1 LayeredPackages: wget # rpm -q wget wget-1.19.4-2.fc28.x86_64 # rpm -q httpd httpd-2.4.33-2.fc28.x86_64 # rpm -q apr apr-1.6.3-5.fc28.x86_64
- Verify that you can start the 'httpd' service and connect to the server
# systemctl start httpd # systemctl status httpd ● httpd.service - The Apache HTTP Server Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled) Active: active (running) since Wed 2018-04-11 02:59:48 UTC; 3s ago Docs: man:httpd.service(8) Main PID: 1778 (httpd) Status: "Processing requests..." Tasks: 213 (limit: 2324) Memory: 21.6M CGroup: /system.slice/httpd.service ├─1778 /usr/sbin/httpd -DFOREGROUND ├─1779 /usr/sbin/httpd -DFOREGROUND ├─1780 /usr/sbin/httpd -DFOREGROUND ├─1781 /usr/sbin/httpd -DFOREGROUND └─1782 /usr/sbin/httpd -DFOREGROUND Apr 11 02:59:48 atomichost-by-dustymabe systemd[1]: Starting The Apache HTTP Server... Apr 11 02:59:48 atomichost-by-dustymabe httpd[1778]: AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 192.168.124.20. Set the 'ServerName' directive globally to suppr> Apr 11 02:59:48 atomichost-by-dustymabe systemd[1]: Started The Apache HTTP Server. # curl http://localhost <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <title>Test Page for the Apache HTTP Server on Fedora</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> ...
- Uninstall 'wget' and 'httpd'
# rpm-ostree uninstall wget httpd Checking out tree ba63713... done Copying /etc changes: 21 modified, 0 removed, 73 added Transaction complete; bootconfig swap: no deployment count change: 0 Removed: apr-1.6.3-5.fc28.x86_64 apr-util-1.6.1-5.fc28.x86_64 brotli-1.0.1-3.fc28.x86_64 fedora-logos-httpd-28.0.2-3.fc28.noarch httpd-2.4.33-2.fc28.x86_64 httpd-filesystem-2.4.33-2.fc28.noarch httpd-tools-2.4.33-2.fc28.x86_64 mailcap-2.1.48-3.fc28.noarch mod_http2-1.10.16-1.fc28.x86_64 wget-1.19.4-2.fc28.x86_64 Run "systemctl reboot" to start a reboot
- Reboot host
- Verify that 'wget' and 'httpd' are no longer layered and cannot be used
# rpm-ostree status State: idle; auto updates disabled Deployments: ● ostree://fedora-atomic:fedora/28/x86_64/atomic-host Version: 28_Beta.1.3 (2018-03-28 22:24:38) Commit: ba6371389226223fb8ba055fb02b92febf4d00e1ccd435cc21cba6af19088c73 GPGSignature: Valid signature by 128CF232A9371991C8A65695E08E7E629DB62FB1 ostree://fedora-atomic:fedora/28/x86_64/atomic-host Version: 28_Beta.1.3 (2018-03-28 22:24:38) BaseCommit: ba6371389226223fb8ba055fb02b92febf4d00e1ccd435cc21cba6af19088c73 GPGSignature: Valid signature by 128CF232A9371991C8A65695E08E7E629DB62FB1 LayeredPackages: httpd wget # rpm -q wget package wget is not installed # rpm -q httpd package httpd is not installed # wget --version bash: wget: command not found # systemctl status httpd Unit httpd.service could not be found.
Expected Results
- Verify that all layering operations were successful