| Server IP : 127.0.1.1 / Your IP : 216.73.216.152 Web Server : Apache/2.4.52 (Ubuntu) System : Linux bahcrestlinepropertiesllc 5.15.0-113-generic #123-Ubuntu SMP Mon Jun 10 08:16:17 UTC 2024 x86_64 User : www-data ( 33) PHP Version : 7.4.33 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /snap/core20/2669/lib/python3/dist-packages/cloudinit/distros/package_management/ |
Upload File : |
# This file is part of cloud-init. See LICENSE file for license information.
from abc import ABC, abstractmethod
from typing import Iterable, List
from cloudinit import helpers
UninstalledPackages = List[str]
class PackageManager(ABC):
name: str
def __init__(self, runner: helpers.Runners, **kwargs):
self.runner = runner
@classmethod
def from_config(cls, runner: helpers.Runners, cfg) -> "PackageManager":
return cls(runner)
@abstractmethod
def available(self) -> bool:
"""Return if package manager is installed on system."""
@abstractmethod
def update_package_sources(self, *, force=False): ...
@abstractmethod
def install_packages(self, pkglist: Iterable) -> UninstalledPackages:
"""Install the given packages.
Return a list of packages that failed to install.
Overriding classes should NOT raise an exception if packages failed
to install. Instead, log the error and return what couldn't be
installed so other installed package managers may be attempted.
"""