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
