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 ba63713... done Enabled rpm-md repositories: updates-testing updates fedora Updating metadata for 'updates-testing': [=============] 100% rpm-md repo 'updates-testing'; generated: 2018-04-10 22:36:28 Updating metadata for 'updates': [=============] 100% rpm-md repo 'updates'; generated: 2018-02-20 19:18:14 Updating metadata for 'fedora': [=============] 100% rpm-md repo 'fedora'; generated: 2018-04-09 12:06:38 Importing metadata [=============] 100% Resolving dependencies... done Will download: 1 package (746.7 kB) Downloading from fedora: [=============] 100% Importing (1/1) [=============] 100% Applying 1 overlay Building filesystem (1/1) [=============] 100% Running pre scripts... 0 done Running post scripts... 8 done Writing rpmdb... done Writing OSTree commit... done Copying /etc changes: 21 modified, 0 removed, 68 added Transaction complete; bootconfig swap: yes deployment count change: 1 Added: wget-1.19.4-2.fc28.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