Title: Working with Package Managers
Description: Learn how to work with package managers in Apx, including creating, editing, deleting, importing, and exporting configurations.
PublicationDate: 2024-10-18
Listed: true
Authors:
- jardon
Tags:
- working
- package-managers
Package managers can be manipulated in various ways with apx. This includes creation, editing, deleting, importing configurations, and exporting configurations.
apx pkgmanagers --help
Work with the package managers that are available in apx.
Usage:
apx pkgmanagers [command]
Available Commands:
export Export the specified package manager.
import Import the specified package manager.
list List all available package managers.
new Create a new package manager.
rm Remove the specified package manager.
show Show information about the specified package manager.
update Update the specified package manager.
Flags:
-h, --help help for pkgmanagers
Use "apx pkgmanagers [command] --help" for more information about a command.
Creating a Package Manager
APX ships with several package managers out-of-the-box. These cover a wide range of different Linux distributions. In the event that you need to add a package manager for a new operating system, this can be done using the apx CLI. Here are the available options for adding a package manager:
apx pkgmanagers new --help
Create a new package manager.
Usage:
apx pkgmanagers new [flags]
Flags:
-a, --autoremove string The command to run to autoremove packages.
-c, --clean string The command to run to clean the package manager's cache.
-h, --help help for new
-i, --install string The command to run to install packages.
-l, --list string The command to run to list installed packages.
-n, --name string The name of the package manager.
-S, --need-sudo Whether the package manager needs sudo to run.
-y, --no-prompt Assume defaults to all prompts.
-p, --purge string The command to run to purge packages.
-r, --remove string The command to run to remove packages.
-s, --search string The command to run to search for packages.
-w, --show string The command to run to show information about packages.
-u, --update string The command to run to update the list of available packages.
-U, --upgrade string The command to run to upgrade packages.
```bash
apx pkgmanagers list
INFO Found 5 package managers
┼┄┄┄┄┄┄┄┄┼┄┄┄┄┄┄┄┄┄┄┼
┊ NAME ┊ BUILT-IN ┊
┼┄┄┄┄┄┄┄┄┼┄┄┄┄┄┄┄┄┄┄┼
┊ apk ┊ yes ┊
┼┄┄┄┄┄┄┄┄┼┄┄┄┄┄┄┄┄┄┄┼
┊ apt ┊ yes ┊
┼┄┄┄┄┄┄┄┄┼┄┄┄┄┄┄┄┄┄┄┼
┊ dnf ┊ yes ┊
┼┄┄┄┄┄┄┄┄┼┄┄┄┄┄┄┄┄┄┄┼
┊ pacman ┊ yes ┊
┼┄┄┄┄┄┄┄┄┼┄┄┄┄┄┄┄┄┄┄┼
┊ zypper ┊ yes ┊
┼┄┄┄┄┄┄┄┄┼┄┄┄┄┄┄┄┄┄┄┼
Looking at the list, we see that yum is not preconfigured for us. This means that we need to add a package manager to apx and give it all the required parameters.
apx pkgmanagers new
NOTE: These options can be passed as CLI args as shown above in the help output.
INFO Choose a name:
yum
INFO Does the package manager need sudo to run? [y/N]
y
INFO Enter the command for 'list':
yum list
INFO Enter the command for 'show':
yum info
INFO Enter the command for 'autoRemove':
yum autoremove
INFO Enter the command for 'clean':
yum clean
INFO Enter the command for 'remove':
yum remove
INFO Enter the command for 'search':
yum search
INFO Enter the command for 'update':
yum upgrade --refresh
INFO Enter the command for 'upgrade':
yum upgrade
INFO Enter the command for 'install':
yum install
INFO Enter the command for 'purge':
yum remove
SUCCESS Package manager yum created successfully.
Now we should be able to see the new yum package manager in the list of available managers.
apx pkgmanagers list
INFO Found 6 package managers
┼┄┄┄┄┄┄┄┄┼┄┄┄┄┄┄┄┄┄┄┼
┊ NAME ┊ BUILT-IN ┊
┼┄┄┄┄┄┄┄┄┼┄┄┄┄┄┄┄┄┄┄┼
┊ yum ┊ no ┊
┼┄┄┄┄┄┄┄┄┼┄┄┄┄┄┄┄┄┄┄┼
┊ apk ┊ yes ┊
┼┄┄┄┄┄┄┄┄┼┄┄┄┄┄┄┄┄┄┄┼
┊ apt ┊ yes ┊
┼┄┄┄┄┄┄┄┄┼┄┄┄┄┄┄┄┄┄┄┼
┊ dnf ┊ yes ┊
┼┄┄┄┄┄┄┄┄┼┄┄┄┄┄┄┄┄┄┄┼
┊ pacman ┊ yes ┊
┼┄┄┄┄┄┄┄┄┼┄┄┄┄┄┄┄┄┄┄┼
┊ zypper ┊ yes ┊
┼┄┄┄┄┄┄┄┄┼┄┄┄┄┄┄┄┄┄┄┼
NOTE: The new
yumpackage manager is user-defined and therefore not considered a “built-in”.
Updating a Package Manager
Updates to package managers can be done similarly to other operations in apx.
apx pkgmanagers update --help
Update the specified package manager.
Usage:
apx pkgmanagers update [flags]
Flags:
-a, --autoremove string The command to run to autoremove packages.
-c, --clean string The command to run to clean the package manager's cache.
-h, --help help for update
-i, --install string The command to run to install packages.
-l, --list string The command to run to list installed packages.
-n, --name string The name of the package manager.
-S, --need-sudo Whether the package manager needs sudo to run.
-y, --no-prompt Assume defaults to all prompts.
-p, --purge string The command to run to purge packages.
-r, --remove string The command to run to remove packages.
-s, --search string The command to run to search for packages.
-w, --show string The command to run to show information about packages.
-u, --update string The command to run to update the list of available packages.
-U, --upgrade string The command to run to upgrade packages.
Now let’s update the autoremove command to add verbosity. This requires adding the -v argument to the command.
apx pkgmanagers update -n yum -S
NOTE: Currently, sudo access with
-Sneeds to be used every time an update occurs to maintain it. Leaving off the-Swill remove sudo access from the command.
INFO Enter new command for 'autoRemove' (leave empty to keep 'yum autoremove'):
yum autoremove -v
INFO Enter new command for 'clean' (leave empty to keep 'yum clean'):
INFO Enter new command for 'install' (leave empty to keep 'yum'):
INFO Enter new command for 'list' (leave empty to keep 'nstall'):
INFO Enter new command for 'purge' (leave empty to keep 'v'):
INFO Enter new command for 'remove' (leave empty to keep 'yum remove'):
INFO Enter new command for 'search' (leave empty to keep 'yum search'):
INFO Enter new command for 'show' (leave empty to keep 'yum info'):
INFO Enter new command for 'update' (leave empty to keep 'yum upgrade --refresh'):
INFO Enter new command for 'upgrade' (leave empty to keep 'yum upgrade'):
INFO Updated package manager 'yum'.
apx pkgmanagers show yum
┼┄┄┄┄┄┄┄┄┄┄┄┄┼┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┼
┊ Name ┊ yum ┊
┼┄┄┄┄┄┄┄┄┄┄┄┄┼┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┼
┊ NeedSudo ┊ true ┊
┼┄┄┄┄┄┄┄┄┄┄┄┄┼┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┼
┊ AutoRemove ┊ yum autoremove -v ┊
┼┄┄┄┄┄┄┄┄┄┄┄┄┼┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┼
┊ Clean ┊ yum clean ┊
┼┄┄┄┄┄┄┄┄┄┄┄┄┼┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┼
┊ Install ┊ yum install ┊
┼┄┄┄┄┄┄┄┄┄┄┄┄┼┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┼
┊ List ┊ yum list ┊
┼┄┄┄┄┄┄┄┄┄┄┄┄┼┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┼
┊ Purge ┊ yum remove ┊
┼┄┄┄┄┄┄┄┄┄┄┄┄┼┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┼
┊ Remove ┊ yum remove ┊
┼┄┄┄┄┄┄┄┄┄┄┄┄┼┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┼
┊ Search ┊ yum search ┊
┼┄┄┄┄┄┄┄┄┄┄┄┄┼┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┼
┊ Show ┊ yum info ┊
┼┄┄┄┄┄┄┄┄┄┄┄┄┼┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┼
┊ Update ┊ yum upgrade --refresh ┊
┼┄┄┄┄┄┄┄┄┄┄┄┄┼┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┼
┊ Upgrade ┊ yum upgrade ┊
┼┄┄┄┄┄┄┄┄┄┄┄┄┼┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┼
Exporting a Package Manager
apx can export a package manager to a yaml file to be imported later.
apx pkgmanagers export --help
Export the specified package manager.
Usage:
apx pkgmanagers export [flags]
Flags:
-h, --help help for export
-n, --name string The name of the package manager to export.
-o, --output string The path to export the stack to.
Now let’s say we are wanting to back up our package manager configuration for usage with some automation tooling. We just need to specify the name of the package manager and a location to export the yaml file.
apx pkgmanagers export -n yum -o .
cat yum.yml
model: 2
name: yum
needsudo: true
cmdautoremove: yum remove
cmdclean: yum clean
cmdinstall: yum install
cmdlist: yum list
cmdpurge: yum remove
cmdremove: yum remove
cmdsearch: yum search
cmdshow: yum show
cmdupdate: yum upgrade
cmdupgrade: yum upgrade
builtin: false
The package manager has been successfully exported!
Importing a Package Manager
Package managers can be imported easily with apx.
apx pkgmanagers import --help
Import the specified package manager.
Usage:
apx pkgmanagers import [flags]
Flags:
-h, --help help for import
-i, --input string The path to import the package manager from.
For this example, we are going to import the yaml file that we exported in the previous section.
apx pkgmanagers import -i yum.yml
INFO Imported package manager from 'yum'.
apx pkgmanagers show yum
┼┄┄┄┄┄┄┄┄┄┄┄┄┼┄┄┄┄┄┄┄┄┄┄┄┄┄┼
┊ Name ┊ yum ┊
┼┄┄┄┄┄┄┄┄┄┄┄┄┼┄┄┄┄┄┄┄┄┄┄┄┄┄┼
┊ NeedSudo ┊ true ┊
┼┄┄┄┄┄┄┄┄┄┄┄┄┼┄┄┄┄┄┄┄┄┄┄┄┄┄┼
┊ AutoRemove ┊ yum remove ┊
┼┄┄┄┄┄┄┄┄┄┄┄┄┼┄┄┄┄┄┄┄┄┄┄┄┄┄┼
┊ Clean ┊ yum clean ┊
┼┄┄┄┄┄┄┄┄┄┄┄┄┼┄┄┄┄┄┄┄┄┄┄┄┄┄┼
┊ Install ┊ yum install ┊
┼┄┄┄┄┄┄┄┄┄┄┄┄┼┄┄┄┄┄┄┄┄┄┄┄┄┄┼
┊ List ┊ yum list ┊
┼┄┄┄┄┄┄┄┄┄┄┄┄┼┄┄┄┄┄┄┄┄┄┄┄┄┄┼
┊ Purge ┊ yum remove ┊
┼┄┄┄┄┄┄┄┄┄┄┄┄┼┄┄┄┄┄┄┄┄┄┄┄┄┄┼
┊ Remove ┊ yum remove ┊
┼┄┄┄┄┄┄┄┄┄┄┄┄┼┄┄┄┄┄┄┄┄┄┄┄┄┄┼
┊ Search ┊ yum search ┊
┼┄┄┄┄┄┄┄┄┄┄┄┄┼┄┄┄┄┄┄┄┄┄┄┄┄┄┼
┊ Show ┊ yum show ┊
┼┄┄┄┄┄┄┄┄┄┄┄┄┼┄┄┄┄┄┄┄┄┄┄┄┄┄┼
┊ Update ┊ yum upgrade ┊
┼┄┄┄┄┄┄┄┄┄┄┄┄┼┄┄┄┄┄┄┄┄┄┄┄┄┄┼
┊ Upgrade ┊ yum upgrade ┊
┼┄┄┄┄┄┄┄┄┄┄┄┄┼┄┄┄┄┄┄┄┄┄┄┄┄┄┼
The package manager has been successfully imported!
Deleting a Package Manager
apx pkgmanagers rm --help
Remove the specified package manager.
Usage:
apx pkgmanagers rm [flags]
Flags:
-f, --force Force removal of the package manager.
-h, --help help for rm
-n, --name string The name of the package manager to remove.
Since we are not using the yum package manager, we want to delete it. This can be done by passing the name of the package manager to the rm command.
apx pkgmanagers rm -n yum
INFO Are you sure you want to remove 'yum'? [y/N]
y
INFO Removed package manager 'yum'.
And with that we no longer have the yum package manager!