- Allow iob start/stop/restart also as root but log information
- Also install passwd and polkitd packages because some lxc systems might miss it
- Added 'distro-info' package to prerequisites list
- Enhance root check and messaging
- root/sudo locked out for systemd based installations
- --allow-root Option enabled (Just for a transition time)
- adds "nmcli" to allowed sudo commands
- Install nodesource rpm package via yum
- Install Node.js 20 by default for installer
- Fix package installation issues on Debian
- Fix Nodejs Update script call
- Fixes in Nodejs installation
- Fixes IP display after installation
- Make sure installation also proceed on new Ubuntu versions when package installations require service restarts
- Allow to define Node.js version as parameter for "iob nodejs-update" command
- fix package installation error for gcc
- Fix how the Node.js update script is called
- IMPORTANT: Node.js v16+ is required at least for installation
- Update node.js installation after nodesource repo changes and update node Node.js 18
- Add command "iob nodejs-update" to update Node.js to latest recommended version (or any when major given as parameter)
- Adjust minimum Node.js version to 16.13 for new installations which match to the minimum version of js-controller 5.0.x
- Install Node.js 18.x by default if no Node.js is installed
- Replace which commands with type
- Adjustments to run diagnostic script differently
- Adjust minimum Node.js version to 12.13 for new installations which match to the minimum version of js-controller 4.0.x
- Add condition for checking if installer runs in Docker environment
- Adjust Docker detection
- Add Diag script and "iob diag" command
- Remove python-dev from installed debian packages again to prevent installing python2 on some distributions
- Delay restarting js-controller after a crash to avoid locked DB files
- Prevent npm from showing npm update information
- Install
cmake
on linux
- Install Node.js 14.x by default
- Expand Docker detection in setup to make it work during Docker build process in GitHub Actions
- Remove info adapter from new installations by default
- Install backitup Adapter on new installations by default
- (Linux) fix CLI completions
- (Linux) revert "ignore which aliases"
- (Linux) enable auto-completion for iobroker commands
- (Linux) ignore which aliases
- (Linux) updated native packages so canvas can be built by default
- (macOS) disabled file permission check on OSX
- fixed cirrus tests
- added support of npm7
- (FreeBSD) Fixed installation for FreeBSD by using
/usr/bin/env
to detect path forbash
automatically and do not enforce usage of python 2.7 which is EOL - (Linux) Use
-y
argument foryum
- (Linux) Updated Recommended Node.JS and NPM Version to 12.x LTS and improved CheckVersions Output for the user
- (Linux) Added net-tools to fix error #277 "ifconfig: command not found"
- (Linux) correctly parse string arguments inside quotes
- (Linux) Avoid entering the sudo password for iobroker CLI
- (Linux) Add iobroker user to the
video
group
- The installer lib file is now deleted after sourcing it
- Configure
npm
to enforce engine versions inpackage.json
- The
shutdown
command is no longer limited to-h now
- The following services are now started before ioBroker if possible:
- Influx DB
- MySQL Server
- Maria DB
- Add user to
video
group (Linux)
- (ADOE) Extracted many shared Installer/Fixer functions into a common library script
- FreeBSD should now finally be supported correctly
- (ADOE) Large refactoring:
- refactored 3 repeated execution blocks into function "add2sudoers()"
- introduced var $SUDOX as shortcut for "if $IS_ROOT... then ... else ... fi"
- refactored detection of HOST_PLATFORM into function get_platform_params()
- extended function "get_platform_params()": now delivers vars: HOST_PLATFORM, INSTALL_CMD, IOB_DIR, IOB_USER
- changed "brew" and "pkg" to "$INSTALL_CMD"
- refactored "Enable colored output" into function "enable_colored_output()"
- "Install Node.js" and "Check if npm is installed" were existing twice. Deleted one.
- refactored "Determine the platform..." to function "install_necessary_packages()"
- calling "install_package()" instead of "install_package_*"
- refactored "Detect IP address" tu function "detect_ip_address()"
- Added option to choose another npm registry.
UseMIRROR=taobao curl -sL https://iobroker.net/install.sh | bash -
to install ioBroker using the taobao registry
- Install
python-dev
to fix npm error:ImportError: No module named compiler.ast
- Emergency fix to last change: escape
$
in$(pwd)
- Always run
npm
as iobroker when inside installation dir
- Allow passwordless sudo for
mysqldump
- Allow passwordless sudo for
ldconfig
- Disable any warnings related to
npm audit fix
- Install Node.js if it is not installed
- Support of CentOS and AWS AMI
- suppress warnings during npm install
- Fix for Debian 10: Add
/sbin
and similar directories toPATH
at the start of the script
- Include
PATH
environment variable in OSX startup script
- Add install fixer as iobroker shortcut via "iobroker fix"
- Autodetect
bash
path to fixcommand not found
on FreeBSD
- (Linux) Add iobroker user to the
audio
group
- Docker: Auto-detect if the container has
CAP_NET_ADMIN
and give it tonode
if possible
- Add
-H
flag tosudo -u iobroker
to fix EACCES errors when using theiobroker
commands to install stuff.
- Don't set CAP_NET_ADMIN in Docker
- Fixed the group add command in FreeBSD
- Fixed the setcap command so it works in Docker
- Fixed another typo in FreeBSD installation routine
- Fixed typo in FreeBSD installation routine
- Also set the correct ACLs when running the script as root
- Allow the commands needed by RPI2
- Add redis as a dependency to the
systemd
unit andinit.d
script to avoid deadlocks on shutdown - Removed limitation for number of arguments for iobroker
- fix setcap and include all in one command
- Give nodejs access to raw devices like ble
- (Linux) Add iobroker user to the redis group
- (Linux) Add iobroker user to the i2c group
- (Linux) Give NodeJS access to privileged ports (<1024 and Bluetooth)
- (MacOS) Add package installing support (brew) and autostart support for
- (FreeBSD) Added added a procedure to handle the freebsd package installation (there is no apt on BSD).
install_package_freebsd()
- (FreeBSD) Added a rough list of packages for iobroker to run on FreeBSD (subject to further improvement).
- (FreeBSD) Added config patches for the zero conf daemon processes, add them to rc startup and start them.
- Revert the
KillMode
change - Redirect
iobroker {start,stop,restart} adaptername
tonode
when usingsystemd
.
Note: If you cannot start/stop adapters using the command line, you have to edit the iobroker binary:and changesudo nano $(which iob)
toif [ "$1" = "start" ] || [ "$1" = "stop" ] || [ "$1" = "restart" ]; then
Then exit and save.if (( $# == 1 )) && ([ "$1" = "start" ] || [ "$1" = "stop" ] || [ "$1" = "restart" ]); then
- Use
KillMode=process
insystemd
to prevent detached processes from being killed aswell
- Move temp_sudo_file instead of copying
- Add current user to iobroker group
- User creation and specifying which commands may be executed as sudo without password
- Creation of the startup files for /etc/init.d, systemd (Linux/OSX) and rc.d (FreeBSD), including detection of the node executable on startup
- Creation of the executables iob and iobroker
- Automated installation of commonly used packages
- More logs into INSTALLER_INFO.txt
- Automatic IP address detection for the final message
- Detection if the installer script is being run as a result of npm install or some other command. This should fix failures during execution of npm rebuild.
- Run all iobroker commands as the iobroker user if possible
- Fix iobroker start/stop/restart/status when systemd is used
Note: Since so much is now being done in the installer script, manual installations on Linux/OSX/FreeBSD using npm
are forbidden since v2.0.0
, which was released on 2019-01-21.
- this version introducted writing INSTALLER_INFO.txt into the ioBroker directory with installation details used later on for support reasons
- initial versions of the script and added several stuff, too much to describe here. This is used as baseline for the shellscript