====== YUM Versionlock - Essential Commands ======
===== Plugin Installation =====
# CentOS/RHEL 7-8
sudo yum install yum-plugin-versionlock
# CentOS/RHEL 9 / Rocky Linux / AlmaLinux
sudo dnf install python3-dnf-plugin-versionlock
===== Basic Commands =====
==== Lock Packages ====
# Lock currently installed version
sudo yum versionlock add package-name
# Lock specific version
sudo yum versionlock add package-name-1.2.3
# Lock with wildcard (all versions starting with...)
sudo yum versionlock add 'gitlab-ee-18*'
# Lock multiple packages at once
sudo yum versionlock add package1 package2 package3
==== View Locks ====
# List all locked packages
sudo yum versionlock list
# Check if specific package is locked
sudo yum versionlock list | grep package-name
==== Unlock Packages ====
# Unlock specific package
sudo yum versionlock delete package-name
# Unlock all packages
sudo yum versionlock clear
# Unlock with wildcard
sudo yum versionlock delete 'gitlab-ee-18*'
===== Practical Examples =====
==== GitLab - Block Major Version ====
# Block all 18.x versions
sudo yum versionlock add 'gitlab-ee-18*'
# Allow updates only within 17.x series
sudo yum update gitlab-ee
==== Kernel - Keep Stable Version ====
# Lock current kernel
sudo yum versionlock add kernel
# Check which version is locked
sudo yum versionlock list | grep kernel
==== Docker - Lock Compatible Version ====
# Lock Docker at current version
sudo yum versionlock add docker-ce docker-ce-cli containerd.io
# List Docker locks
sudo yum versionlock list | grep docker
===== Configuration Files =====
==== File Locations ====
# Locked packages list stored in:
/etc/yum/pluginconf.d/versionlock.list
# Plugin configuration:
/etc/yum/pluginconf.d/versionlock.conf
==== Manual Editing ====
# Edit list directly (not recommended)
sudo nano /etc/yum/pluginconf.d/versionlock.list
# Format: EPOCH:NAME-VERSION-RELEASE.ARCH
# Example: 0:gitlab-ee-17.11.6-ee.0.el8.x86_64
===== Useful Combined Commands =====
==== Selective Updates ====
# Update all packages except locked ones
sudo yum update
# Force update (temporarily ignore versionlock)
sudo yum update --disableplugin=versionlock
# Update only specific package (respects locks)
sudo yum update package-name
==== Pre-Update Verification ====
# See what would be updated (dry-run)
sudo yum check-update
# See which packages are locked
sudo yum versionlock list
# Combine - see available updates vs locked
sudo yum check-update && echo "--- BLOCKED ---" && sudo yum versionlock list
===== Tips & Best Practices =====
**Useful Tips:**
* Use wildcards to block entire version families
* Regularly check lock list with ''yum versionlock list''
* Test updates on staging systems before production
* Document why you locked specific packages
**Important Notes:**
* Versionlock doesn't work with ''yum remove''
* Locked packages may create unresolved dependencies
* Check compatibility before locking critical packages
===== Troubleshooting =====
==== Common Issues ====
# Plugin not working
sudo yum clean all
sudo yum makecache
# Check if plugin is active
yum --help | grep versionlock
# Reset all locks if having issues
sudo yum versionlock clear
==== Plugin Status Check ====
# Check if plugin is installed
rpm -qa | grep versionlock
# Check configuration
cat /etc/yum/pluginconf.d/versionlock.conf