|
This document covers the following subjects:
Download and install required RPM packages from the
H-Sphere VPS download directory.
VPS Scripts Location
All VPS scripts are located in the $VPSSCRIPTS directory (Default: /hsphere/shared/scripts).
Cron scripts are located in the $VPSSCRIPTS/cron (Default: /hsphere/shared/scripts/cron).
Perl Modules Used By VPS Scripts
Note:We provide hsphere-vps package only for:
Red Hat Linux release 7.3 with Perl 5.6.1 installed.
Red Hat Enterprise Linux release 3 with Perl 5.8.0 installed.
If you wish to install this package with other versions of Perl,
you need to
build your own H-Sphere VPS binaries.
Perl modules:
Red Hat Linux release 7.3, Perl v5.6.1 - modules are installed in [/usr/lib/perl5/site_perl/5.6.1/VServer/]
Red Hat Enterprise Linux ES release 3, Perl v5.8.0 - modules are installed in [/usr/lib/perl5/site_perl/5.8.0/VServer]
Addon.pm
Admin.pm
Net.pm
Util.pm
Vars.pm
Vrpm.pm
VPS Configuration File
The default VPS configuration file is /hsphere/local/config/vserver/vps.cfg.
WARNING:
1. Do not change location of the configuration file!
2. It is strongly recommended not to make changes to the configuration file manually!
If you need to set parameters to the configuration file,
run /hsphere/shared/scripts/vps-configure.pl
and follow the step-by-step configuration instructions as specified in
VPS Installation Guide
of H-Sphere documentation.
Below are configuration parameters set in the VPS configuration file:
#########################################################################################
# (c) 2004 Positive Software Corporatition #
# Distributed only with H-Sphere #
# #
# http://www.psoft.net #
#########################################################################################
#########################################################################################
# Default configuration file for #
# creation and management of Virtual Private Servers. #
# It is strongly recommended that you do not make any changes to this file manually. #
# Run [# /hsphere/shared/scripts/vps-configure.pl] #
# and perform step-by-step configuration for your virtual servers. #
#########################################################################################
# System parameters
# Linux release
LINUXCODE=undef
# FreeVPS kernel patch BUILD
BUILD=0000000001
# Virtual Servers network configuration
# Set the ONBOOT option to 'no' to disable virtual servers at boot time
ONBOOT=yes
# Boot-time protocol
BOOTPROTO=static
# You can set various capabilities. By default, the vservers are run
# with a limited set. In some cases
# you can to give a little more capabilities (such as CAP_NET_RAW, CAP_NET_ADMIN)
S_CAPS="CAP_NET_RAW CAP_NET_ADMIN CAP_SYS_RESOURCE"
# Default gateway for virtual servers
GATEWAY=0.0.0.0
# Name server(s) IP addresses:
NAMESERVER=""
# Ethernet network device use to setup IP(s) to be assigned to the VPS.
# This is generally eth0.
# IP(s) will be configured when you start the VPS and un-configure when you stop it.
IPROOTDEV=eth0
# Set VDEVALIASE to 'yes' to enable virtual ethernet devices aliases.
# Using virtual ethernet devices aliases allow you configure up to 16 different device aliases (with IP address assigned)
# per each virtual ethernet device (maximum 16 different virtual ethernet devices can be created in VPS).
# So, using aliasing, you can assign up to 16x16 IP address to one VPS.
VDEVALIAS=no
# Max number of virtual ethernet devices per virtual context
MAXVDEVS=15
# Max number of virtual ethernet device aliases per each virtual ethernet device at current virtual context
# Required when device aliasing used (option VDEVALIAS=yes) only.
MAXVDEVALIASES=15
# Virtual device on which IP alias will work.
# Not urgent in this version of VPS.
VIPROOTDEV=eth0
# Vinterface controlling flags
VDEVFLAGS="local"
# Virtual Servers creating options
# Below is the list of default services initialized at virtual servers' boot time
START_SERVICES="anacron atd crond kdcrotate network random rawdevices sshd syslog xinetd vpsinit netfs portmap gpm identd ipchains iptables nscd sendmail ypbind"
# Set ADDITIONAL to 'yes' if you want to install ADDITIONAL_PACKAGES
# and ADDITIONAL_SERVICES to be set up to start at virtual servers' boot time
ADDITIONAL=no
# Additional packages available for installation on VPS
ADDITIONAL_PACKAGES_AVAILABLE="gcc samba http sendmail php mysql postgresql mc up2date"
# Additional packages to be installed for VPS
ADDITIONAL_PACKAGES=""
# Additional services available for setup
ADDITIONAL_SERVICES_AVAILABLE="httpd sendmail mysqld postgresql rhnsd winbind"
# Additional services to be set up
ADDITIONAL_SERVICES=""
# Set CHECKRPM to 'yes' if you want all packages required to build VPS be checked.
CHECKRPM=no
# VPS log options
# Path to the log file for VPS control scripts
LOGFILE=/var/log/hsphere/vps.log
# Log file max size in Mb
LOGFILESIZE=1
# Number of log files stored.
LOGFILENUM=7
# Log detailization. Available detailizations: INFO CRON WARN ERROR FATAL TEST
# List of available types enclosed in brackets.
LOGDETAILS="INFO CRON WARN ERROR FATAL TEST syst open"
# VPS related files
#Virtual Private Server HSphere scripts package version file
HSVPS_VERSION_FILE=/hsphere/local/config/vserver/HSVPS_VERSION
# Path to the file which consists the list of known VPSs,
# and list of VPSs scheduled for deletion.
VPSLIST=/hsphere/local/config/vserver/vps.list
# File where PID of running VPSs-creating script (vps-cran.pl) is stored
CRONPID=/var/log/hsphere/vps_cron.pid
# File where PID of running VPSs-traffic script (vps-cran-traf.pl) is stored
STATCRONPID=/var/log/hsphere/stat_vps_cron.pid
# VPS working directories
# Virtual Private Server libraries
USR_LIB_VSERVER=/usr/lib/vserver
# Path to the files with RPM lists (rpm_base.cfg) required for basic Linux RedHat installation
RPMBASE=/hsphere/local/config/vserver
# Path to Linux RedHat packages (RPMS)
LINUXRPMS=/home/RedHat/7.3/RedHat/RPMS
# Path to VPS config files
VPSCONFIGS=/hsphere/local/config/vserver
# ROOT directory for all VPS servers.
VPSHOME=/hsphere/local/vservers
# Path to H-Sphere Control Panel configuration files for VPS
HSVPSFILES=/hsphere/local/config/vserver/cp
# Path where all H-Sphere VPS scripts are located
VPSSCRIPTS=/hsphere/shared/scripts
# Path where VPS statistics is stored (e.g., VPS traffic)
STATISTICFILES=/hsphere/local/var/statistic
# Path to VPS statistics files loaded to Control Panel
STATISTICLOADED=/hsphere/local/var/statistic/loaded
# Path to packages required by H-Sphere
HSINSTALLPKG=/hsphere/install/pkg
# Public key file to verify RPM packages built and signed by Red Hat, Inc.
RPM_GPG_KEY=/usr/share/doc/redhat-release-7.3/RPM-GPG-KEY
# Additional PATHs
# Binary directory
SBIN=/sbin
# Users' binary directory
USR_SBIN=/usr/sbin
# Vserver related programs
# Main 'vserver' script
VSERVER_CMD=/usr/sbin/vserver
# 'vserver_ctl' program
VSERVER_CTL=/usr/sbin/vserver_ctl
# 'vserver_limit' program
VSERVER_LIMIT=/usr/sbin/vserver_limit
# 'chcontext' program
CHCONTEXT_CMD=/usr/sbin/chcontext
# 'chroot' program
CHROOT=/usr/sbin/chroot
# 'vdu' program
VDU=/usr/sbin/vdu
# 'setattrib' program
SETATTRIB=/usr/sbin/setattrib
# 'vifconfig' program
VIFCONFIG=/usr/sbin/vifconfig
# 'ifconfig' program
IFCONFIG=/sbin/ifconfig
# 'chkconfig' program
CHKCONFIG=/sbin/chkconfig
# Additional programs and paths
#cat- concatenate files and print on the standard output program
CAT=/bin/cat
#grep - print lines matching a pattern program
GREP=/bin/grep
#awk - pattern scanning and processing language
AWK=/bin/awk
#head - output the first part of files
HEAD=/usr/bin/head
# Print system information program
UNAME=/bin/uname
# usermod - Modify a user account
USERMOD=/usr/sbin/usermod
# ps - report process status
PS=/bin/ps
# rpm - RPM Package Manager
RPM=/bin/rpm
# df - report filesystem disk space usage
DF=/bin/df
# mknod - make block or character special files
MKNOD=/bin/mknod
# touch - change file timestamps
TOUCH=/bin/touch
# mount - mount a file system
MOUNT=/bin/mount
# umount - unmount file systems
UMOUNT=/bin/umount
# crontab - maintain crontab files for individual users (V3)
CRONTAB=/usr/bin/crontab
# ln - make links between files
LN=/bin/ln
# quotacheck - scan a filesystem for disk usage, create, check and repair quota files
QUOTACHECK=/sbin/quotacheck
# utility for download files from the Web
WGET=/usr/bin/wget
# list directory contents utility
LS=/bin/ls
# sed - a Stream EDitor
SED=/bin/sed
# route - show / manipulate the IP routing table
ROUTE=/sbin/route
# Path where gzip is placed
GZIPPATH=/bin/gzip
# sleep - delay for a specified amount of time
SLEEP=/bin/sleep
# gpg - encryption and signing tool
GPG=/usr/bin/gpg
# Some URLs
# URL to Linux RPMs
LINUXRPMSITE=http://ftp.redhat.com/pub/redhat/linux/7.3/en/os/i386/RedHat/RPMS
# VPS processes files
# VPS system calls file
SETUP=/proc/vservers/setup
# Per context running configuration
SELF=/proc/vservers/self
# Required packages
# HSphere VPS scripts package
HSVPSPACKAGE=hsphere-vps
# FreeVPS tools package
FREEVPSTOOLSPACKAGE=freevps-tools
# Linux virtual server utilities package
VSERVERPACKAGE=vserver-
Other VPS Related Configuration Files
a) Template configuration files located in $HSINSTALLPKG (Default: /hsphere/local/config/vserver/<Your OS code>/):
where <Your OS code>:
RH73 - Red Hat Linux release 7.3
RHES3 - Red Hat Enterprise Linux ES release 3
RHAS3 - Red Hat Enterprise Linux AS release 3
RHWS3 - Red Hat Enterprise Linux WS release 3
rpm_base.cfg - base and core of Linux;
rpm_development-tools.cfg - Development Tools
rpm_dns-server.cfg - DNS Name Server
rpm_ftp-server.cfg - FTP Server
rpm_kernel-vps.cfg - kernel emulator for VPS
rpm_mail-server.cfg - Mail Server
rpm_mysql-server.cfg - MySQL Database
rpm_news-server.cfg - News Server
rpm_perl-full.cfg - Perl programing language modules
rpm_pgsql-server.cfg - Postgresql SQL Database
rpm_quota.cfg - quota tools for VPS
rpm_samba-server.cfg - Windows File Server
rpm_system-tools.cfg - System Tools
rpm_web-server.cfg - Web Server
b) VPS box configuration files located in $VPSCONFIGS (Default: /hsphere/local/config/vserver/):
vps.cfg - the main configuration file for all Virtual Private Servers.
vps.cfg.bak - the main configuration file backup.
vps.cfg.default - default configuration for all Virtual Private Servers.
vps.list - the list of all known VPS and the list of Virtual Private Servers scheduled for removal.
VPS Configuration
Enter the $VPSSCRIPTS directory (Default: /hsphere/shared/scripts) to run the
vps_configure.pl script.
SYNTAX:
./vps-configure.pl [-d|-r|-h]
OPTIONS:
--defaults|-d load default settings
--restore|-r restore settings you made before
--help|-h display this help message
Run vps_configure.pl:
# /hsphere/shared/scripts/vps-configure.pl
Do you really want to reconfigure your VPSs [y/n]?
Kernel: 2.4.21-freevps-1.2-1hugemem
FreeVPS patch build: 1080548030
Base FreeVPS tools package: freevps-tools-1.2-1
H-Sphere VPS scripts package: hsphere-vps-1.2-1
RedHat release: RH73
To perform basic configuration for all virtual servers, follow the VPS Configuration section of the
H-Sphere VPS Installation guide.
VPS Creation
To create new Virtual Private Server, run the vps-post-config.pl script:
./vps-post-config.pl VPS_HOST_NAME
And put in the following parameters to STDIN:
IP=ADDRESS:MASK:HDEV - IP to be assigned to this VPS and allowed on network interface HDEV on your VPS box;
DLIMIT=XXXX - Disk limit in Mb;
MLIMIT=XXXX - Memory Limit in Mb;
PLIMIT=XXXX - Limit on the number of running processes;
FILELIMIT=XXXX - Number of opened files limit;
TCPLIMIT=XXXX - TCP sockets limit;
ROOTPWD=**** - User root password;
CTRL+D - Press Ctrl+d to stop data input.
Example:
Create a VPS with the following configuration:
Hostname: 231.tst
IP address: 192.168.112.231, mask: 255.255.255.0
Disk limit: 3000Mb
Memory limit: 512Mb
Limit on the number of running processes: 1000
Root password: 1
[root@vps scripts]# ./vps-post-config.pl 231.tst
IP=192.168.112.231:255.255.255.0[press Enter]
DLIMIT=3000[press Enter]
MLIMIT=512[press Enter]
PLIMIT=1000[press Enter]
ROOTPWD=1[press Enter]
[press Ctrl+d] (end of data input)
vps-post-config.pl creates the $HSVPSFILES/231.tst/231.tst.in file
(Default: /hsphere/local/config/vserver/cp/231.tst/231.tst.in)
with the input parameters,
and registers VPS in the list of known vservers:
$VPSCONFIGS/vps.list (Default: /hsphere/local/config/vserver/vps.list)
Check the list of VPSs:
[root@vps scripts]# cat /hsphere/local/config/vserver/vps.list
You would get something like this:
DELETE=""
VSERVERS="3:231.tst"
Format:
DELETE="HOSTNAME1 HOSTNAME2 HOSTNAME3" - the list of VPSs scheduled for deletion,
separated with whitespaces;
VSERVERS="CONTEXT_ID1:HOSTNAME1 CONTEXT_ID2:HOSTNAME2" - the list of known VPSs,
separated with whitespaces;
CONTEXT_ID is a virtual server ID
VPS Cron Scripts
These are VPS scripts scheduled in cron on the host server:
*/5 * * * * /hsphere/shared/scripts/cron/vps-cron.pl >/dev/null 2>&1
59 */1 * * * /hsphere/shared/scripts/cron/vps-cron-traf.pl >/dev/null 2>&1
*/4 * * * * /hsphere/shared/scripts/cron/vps-cron-delete.pl >/dev/null 2>&1
00 5 * * * /hsphere/shared/scripts/cron/vps-cron-fix.pl >/dev/null 2>&1
1. vps-cron.pl
The $VPSSCRIPTS/cron/vps-cron.pl script
(Default: /hsphere/shared/scripts/cron/vps-cron.pl)
runs every 5 minutes.
It is used to install and configure new Virtual Private Servers.
The script works as follows:
- It checks the list of known vservers and
takes each VPS and processes requested tasks
from the $HSVPSFILES/VPS_NAME/VPS_NAME.in file (Default: .../cp/VPS_NAME/VPS_NAME.in).
- If the requested task is successfully done, it creates a note in
the $HSVPSFILES/VPS_NAME/VPS_NAME.out file (Default: .../cp/VPS_NAME/VPS_NAME.out)
- If all of the requested tasks are done, it creates the DONE file:
$HSVPSFILES/VPS_NAME/VPS_NAME.done (Default: .../cp/VPS_NAME/VPS_NAME.done),
and deletes the request file:
$HSVPSFILES/VPS_NAME/VPS_NAME.in (Default: .../cp/VPS_NAME/VPS_NAME.in).
- It creates the FLAG file:
$STATCRONPID (Default: /var/log/hsphere/vps_cron.pid)
with its own PID, to prevent executing another copy of it.
- It creates all configuration files required for VPSs:
$VPSCONFIGS/VPS_NAME.conf (Default: /hsphere/local/config/vserver/VPS_NAME.conf)
$VPSCONFIGS/VPS_NAME.sh (Default: /hsphere/local/config/vserver/VPS_NAME.sh)
- It installs basic Linux RH7.3 packages and additional packages if configured,
creates services, set limits, assigns IPs, and finaly, starts VPS.
2. vps-delete.pl
SYNTAX:
./vps-delete.pl VPS_HOST_NAME
- It removes existing VPS [VPS_HOST_NAME], all its configuration files,
removes [VPS_HOST_NAME] from the list of known VPS.
- If [VPS_HOST_NAME] is being created by cron at the moment, [vps-delete.pl]
posts deletion request for VPS (sets the DELETE parameter in the vps.list file)
- All deletion requests are processed by vps-cron-delete.pl cron every 4 minutes.
3. cron-traf.pl
Processes VPS network traffic statistics.
Creates files with VPS daily traffic statistics:
/hsphere/local/var/statistic/DD.MM.YYYY.vps.txt
4. cron-fix.pl
Fixes Disk Usage value for each of known VPS servers.
VPS Configuration Scripts
1) ./vps-addip.pl VPS_HOST_NAME IP:MASK
Assigns new IP adress to the VPS_HOST_NAME virtual server.
2) ./vps-rmip.pl VPS_HOST_NAME IP[:MASK]
Removes IP from VPS_HOST_NAME.
3) ./vps-dlimit-set VPS_HOST_NAME DISK_LIMIT_VALUE
Sets disk usage limit for VPS_HOST_NAME to DISK_LIMIT_VALUE, in Mb.
4) ./vps-dlimit-get VPS_HOST_NAME
Returns disk limit and disk usage for VPS_HOST_NAME.
5) ./vps-mlimit-set VPS_HOST_NAME MEMORY_LIMIT_VALUE
Sets memory limit for the VPS_HOST_NAME server to MEMORY_LIMIT_VALUE, in Mb
6) ./vps-mlimit-get VPS_HOST_NAME
Returns memory limit and memory usage for VPS_HOST_NAME
7) ./vps-plimit-set VPS_HOST_NAME PROCESS_LIMIT_VALUE
Sets limit on the number of processes running on VPS_HOST_NAME to PROCESS_LIMIT_VALUE, in Mb
8) ./vps-plimit-get VPS_HOST_NAME
Returns the limit on and the number of processes running for VPS_HOST_NAME
9) ./vps-flimit-get VPS_HOST_NAME
Returns file handlers limit, and the number of opened at this moment files VPS_HOST_NAME
10) ./vps-flimit-set VPS_HOST_NAME
Sets file handlers limit for VPS_HOST_NAME
11) ./vps-tcplimit-get VPS_HOST_NAME
Returns socket connections limit and number of established connections for VPS VPS_HOST_NAME
12) ./vps-tcplimit-set VPS_HOST_NAME
Sets limit for established socket connections for VPS VPS_HOST_NAME
13) ./vps-dev-speed.pl
Tools to get|set virtual network interface speed. In this version of VPS you can manage virtual network interfaces work spped.
Note: Virtual network interface speed must be divisible by 64000.
Usage: vps-eth-speed.pl VPS_NAME [--dev=<device>|-d <device>] --get|--set <SPEED>
For more information, please run: vps-dev-speed.pl --help
14) ./vps-dev-speed-set VPS_NAME [--dev=<device>|-d <device>] <SPEED>
Sets work speed to <SPEED> Kb/sec for virtual network interface <device> on Virtual Private Server VPS_NAME
Note: Virtual network interface speed (<SPEED> value) must be divisible by 64000.
Note: If --dev=<device>|-d <device> option not specified, <SPEED> value will be set to all registered virtual network interfaces on VPS VPS_NAME
15) ./vps-dev-speed-get VPS_NAME [--dev=<device>|-d <device>]
Returns work speed for virtual network interface <device> on Virtual Private Server VPS_NAME
Note: If --dev=<device>|-d <device> option not specified, returns speed for all virtual network interfaces registered on VPS VPS_NAME, in format:
VDEV0 SPEED0
VDEV1 SPEED1
...
16) ./vps-start.pl [VPS_HOST_NAME | [-a|--all]]
Turns on VPS_HOST_NAME, or all known stopped VPS servers if -a|--all option is specified.
17) ./vps-stop.pl [VPS_HOST_NAME | [-a|--all]]
Turns off VPS_HOST_NAME, or all known running VPS servers if -a|--all option is specified.
18) ./vps-suspend.pl [VPS_HOST_NAME | [-a|--all]]
Suspends (turn off and set ONBOOT=no) vserver [VPS_HOST_NAME], or all known VPS servers if -a|--all option is specified.
19) ./vps-resume.pl [VPS_HOST_NAME | [-a|--all]]
Resumes (turn on and set ONBOOT=yes) vserver [VPS_HOST_NAME], or all known VPS servers if -a|--all option is specified.
20) ./vps-rootpwd.pl VPS_HOST_NAME
To set new password for user root, send it to STDIN.
21) ./vps-du.pl
Returns disk usage for all known VPSs on the host server in the format required by H-Sphere Control Panel.
22) ./vps-get-config.pl VPS_HOST_NAME
Returns all VPS configuration parameters in the format required by H-Sphere Control Panel.
23) ./vps-list.pl
Returns brief information about all VPSs installed on the host server,
installed VPS packages, values of configuration variables.
Example:
[root@vps scripts]# ./vps-list.pl
Kernel: 2.4.21-freevps-1.2-1hugemem
FreeVPS patch build: 1080548030
FreeVPS tools: 1.2-1
H-Sphere VPS: 1.2-1 [20040330]
RedHat release: RH73
Free disk spase on VPS home [/vservers]: 14951 Mb
Virtual Private Servers found on the host:
---------------------------------------------------------------------------------------------------------
ID NAME STATUS VDEV:HDEV:IP/MASK+|-(UP|DOWN) DISK INF. (Mb) MEMORY (Mb) PROCESSES TRAFFIC (Mb)
---------------------------------------------------------------------------------------------------------
3 230.psoft running eth0:eth0:192.168.112.230/24+ 2000 372.760 200 2.148 200 6 0.040
eth1:eth0:192.168.112.239/24+
4 231.psoft running eth0:eth0:192.168.112.231/24+ 2000 395.631 200 8.305 200 15 0.000
---------------------------------------------------------------------------------------------------------
24) To install additional packages on existing VPS, use the vps-pkg-inst.pl script.
It installs package/lists of packages to the VPS you specified or to all known VPS on the host.
Run # ./vps-pkg-inst.pl -h to get help on the script options:
vps-pkg-inst.pl - tools to install package(s) on Virtual Private Server(s)
usage: vps-pkg-inst.pl VPS_NAME|--all|-a OPTIONS
[VPS_NAME] Virtual Private Server name to install package(s)
--all|-a install package(s) on all known VPSs
OPTIONS:
--package=<package_name>|-p <package_name>
Install package. Full path to the package required.
--list=<list>|-l <list>
Install package(s) included to the <list>.
rpm_<list>.cfg file must be located in [/hsphere/local/config/vserver/RH73]
All RPM packages included in <list>, must be located in [/RPMS]
The first script argument is the VPS name.
If -a (or --all) option is specified, the installation will be performed to all known VPSs.
Options:
--package=<package_name>
-p <package_name> - installs RPM package <package_name>.
Full path to <package_name> is required.
Example:
--package=/pub/RedHat/7.3/RedHat/RPMS/mc-4.5.55-5.i386.rpm
-p /pub/RedHat/7.3/RedHat/RPMS/mc-4.5.55-5.i386.rpm
--list=<mylist>
-l <mylist> - installs package(s) included to <mylist>.
The rpm_<mylist>.cfg file must be located in /hsphere/local/config/vserver/RH73:
# ls -la /hsphere/local/config/vserver/RH73/rpm_php.cfg
-rw-r--r-- 1 root root 126 Nov 18 05:38 /hsphere/local/config/vserver/RH73/rpm_php.cfg
Example:
--list=php
-l php
Examples:
-
# cd /hsphere/shared/scripts
# ./vps-pkg-inst.pl 241.tst -l php (# ./vps-pkg-inst.pl 241.tst --list=php)
Preparing... ########################################### [100%]
1:php ########################################### [ 20%]
2:php-devel ########################################### [ 40%]
3:php-imap ########################################### [ 60%]
4:php-ldap ########################################### [ 80%]
5:php-odbc ########################################### [100%]
-
# ./vps-pkg-inst.pl -a --package=/RPMS/mc-4.5.55-5.i386.rpm
Installing packages to all known Virtual Private Servers...
Installing on [231.tst]...
Preparing... ########################################### [100%]
1:mc ########################################### [100%]
[OK] installation successful
Installing on [232.tst]...
Preparing... ########################################### [100%]
package mc-4.5.55-5 is already installed
[ERROR] installation failed.
|