q26-package-management
Énoncé§
Solve this question on: app-srv1
- Install the package
treeand write its version into/opt/course/26/tree-version. - Find which package owns the file
/usr/bin/vimand write it into/opt/course/26/owner. - List all files installed by the
nginxpackage into/opt/course/26/nginx-files. - Put a hold on the
openssh-serverpackage so it is not upgraded byapt.
Solution§
The LFCS exam may use either Debian (apt/dpkg) or RHEL (dnf/rpm). Know both.
Debian / Ubuntu — apt + dpkg§
sudo apt update # refresh indexes
sudo apt install tree # install
sudo apt remove tree # remove (keep config)
sudo apt purge tree # remove + config
sudo apt upgrade # upgrade all
sudo apt full-upgrade # may remove packages
apt list --installed | grep -i tree
apt-cache search keyword # search
apt-cache policy nginx # versions and origins
Lower-level dpkg:
dpkg -l # all installed
dpkg -l tree # status of one package
dpkg -s tree # detailed status
dpkg -L nginx > /opt/course/26/nginx-files # files installed by pkg
dpkg -S /usr/bin/vim > /opt/course/26/owner # which pkg owns a file
sudo dpkg -i package.deb # install local .deb
sudo dpkg --configure -a # finish broken installs
Hold a package (prevents upgrade):
sudo apt-mark hold openssh-server
sudo apt-mark unhold openssh-server
apt-mark showhold
RHEL / Fedora — dnf + rpm§
sudo dnf install tree
sudo dnf remove tree
sudo dnf update # upgrade all
sudo dnf search keyword
sudo dnf info tree
sudo dnf provides /usr/bin/vim # which pkg owns a file
sudo dnf history # transaction log
sudo dnf history undo 42 # roll back transaction
sudo dnf list installed
sudo dnf clean all
sudo dnf groupinstall "Development Tools"
Lower-level rpm:
rpm -qa # all installed
rpm -qi tree # info
rpm -ql nginx # files in installed pkg
rpm -qf /usr/bin/vim # owning pkg
rpm -V nginx # verify integrity
sudo rpm -ivh package.rpm
sudo rpm -e tree # erase
Version lock (RHEL):
sudo dnf install python3-dnf-plugin-versionlock
sudo dnf versionlock add openssh-server
sudo dnf versionlock list
sudo dnf versionlock delete openssh-server
Step 1 — Tree version§
sudo apt install -y tree
dpkg -s tree | awk '/^Version:/ {print $2}' > /opt/course/26/tree-version
# RHEL:
rpm -q --qf '%{VERSION}-%{RELEASE}\n' tree > /opt/course/26/tree-version
Repositories§
Debian: files under /etc/apt/sources.list and /etc/apt/sources.list.d/*.list.
RHEL: files under /etc/yum.repos.d/*.repo. Enable/disable:
sudo dnf config-manager --enable powertools
sudo dnf config-manager --add-repo https://example.com/repo.repo
GPG keys§
Debian: /etc/apt/trusted.gpg.d/ or /etc/apt/keyrings/.
RHEL: rpm --import https://example.com/key.gpg.
—The Gardener