REDROOM
PHP 8.2.30
Path:
Logout
Edit File
Size: 3.18 KB
Close
/opt/cloudlinux/venv/lib/python3.11/site-packages/clconfigure/packages.py
Text
Base64
# Copyright © Cloud Linux GmbH & Cloud Linux Software, Inc 2010-2018 All Rights Reserved # # Licensed under CLOUD LINUX LICENSE AGREEMENT # https://cloudlinux.com/docs/LICENCE.TXT # import logging import os import re from clcommon.utils import is_ubuntu from clconfigure import task, run STATE_REMOVED = 'uninstalled' STATE_INSTALLED = 'installed' @task("Erasing package '{package_name}'") def erase_package(package_name): if is_ubuntu(): run(['dpkg', '--purge', '--force-depends', package_name]) else: run(['rpm', '--erase', '--nodeps', package_name]) current_state = get_package_state(package_name) logging.info("Checking package '%s' state again... package is now in state '%s'", package_name, current_state) if STATE_REMOVED != current_state: raise RuntimeError("Failed to do required actions") @task("Changing package '{package_name}' state to '{desired_state}'") def set_package_state(desired_state, package_name): """ Brings package to given state (installed | uninstalled). May be executed more than once, doesn't crash on future calls """ current_state = get_package_state(package_name) logging.debug("Checking package '%s' state... package is in state '%s'", package_name, current_state) if desired_state == current_state: logging.debug("No actions needed for package '%s'", package_name) return logging.info('State does not match target, changing...') if desired_state == STATE_REMOVED: if is_ubuntu(): run(['apt-get', 'purge', '-y', package_name]) else: run(['yum', 'remove', '-y', package_name]) elif desired_state == STATE_INSTALLED: if is_ubuntu(): run(['apt-get', 'install', '-y', package_name]) else: run(['yum', 'install', '-y', package_name]) else: raise NotImplementedError() current_state = get_package_state(package_name) logging.info("Checking package '%s' state again... package is now in state '%s'", package_name, current_state) if desired_state != current_state: raise RuntimeError("Failed to do required actions") @task("(Re)installing package '{package_name}'") def install_package(package_name: str, reinstall: bool = False): state = get_package_state(package_name) if state == STATE_INSTALLED and reinstall: cmd = ['apt-get' if is_ubuntu() else 'yum', 'reinstall', '-y', package_name] elif state == STATE_REMOVED: cmd = ['apt-get' if is_ubuntu() else 'yum', 'install', '-y', package_name] else: return run(cmd) def get_package_state(package): """ Gets current package state. Either installed or uninstalled. """ if is_ubuntu(): resp = run(['dpkg', '-s', package]) if resp.exitcode == 0 and 'Status: install ok installed' in resp.stdout: return STATE_INSTALLED return STATE_REMOVED resp = run(['rpm', '-qv', package]) return STATE_INSTALLED if resp.exitcode == 0 else STATE_REMOVED def get_list_installed_alt_phps(): """ Gets installed alt-phps return: list ['php44', 'php54', 'php80'] """ return [php for php in os.listdir('/opt/alt') if re.match(r'^php\d+$', php)]
Save
Close
Exit & Reset
Text mode: syntax highlighting auto-detects file type.
Directory Contents
Dirs: 3 × Files: 12
Delete Selected
Select All
Select None
Sort:
Name
Size
Modified
Enable drag-to-move
Name
Size
Perms
Modified
Actions
cli
DIR
-
drwxr-xr-x
2026-03-05 22:36:41
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
spec
DIR
-
drwxr-xr-x
2026-03-05 22:36:41
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
__pycache__
DIR
-
drwxr-xr-x
2026-03-05 22:40:02
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
awp.py
1.75 KB
lrw-r--r--
2026-02-17 10:47:15
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
cagefs.py
1.81 KB
lrw-r--r--
2026-02-17 10:47:15
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
clpro.py
868 B
lrw-r--r--
2026-02-17 10:47:15
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
files.py
933 B
lrw-r--r--
2026-02-17 10:47:15
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
limits.py
2.86 KB
lrw-r--r--
2026-02-17 10:47:15
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
linksafe.py
1.75 KB
lrw-r--r--
2026-02-17 10:47:15
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
lve.py
965 B
lrw-r--r--
2026-02-17 10:47:15
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
packages.py
3.18 KB
lrw-r--r--
2026-02-17 10:47:15
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
Readme.md
1.61 KB
lrw-r--r--
2026-02-17 10:47:15
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
services.py
2.29 KB
lrw-r--r--
2026-02-17 10:47:15
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
watcher.py
4.94 KB
lrw-r--r--
2026-02-17 10:47:15
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
__init__.py
3.09 KB
lrw-r--r--
2026-02-17 10:47:15
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
Zip Selected
If ZipArchive is unavailable, a
.tar
will be created (no compression).