# 更新系统
sudo apt update && sudo apt upgrade -y # Debian/Ubuntu
sudo dnf update -y # RHEL/CentOS/Fedora
# 安装基础开发工具
sudo apt install -y build-essential git curl wget python3-pip
# 安装Mosquitto MQTT broker
sudo apt install -y mosquitto mosquitto-clients
# 启用服务
sudo systemctl enable mosquitto
sudo systemctl start mosquitto
# 测试订阅/发布
mosquitto_sub -h localhost -t "test/topic" &
mosquitto_pub -h localhost -t "test/topic" -m "Hello MQTT"
# InfluxDB安装
wget -qO- https://repos.influxdata.com/influxdb.key | sudo apt-key add -
echo "deb https://repos.influxdata.com/$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/influxdb.list
sudo apt update && sudo apt install -y influxdb2
sudo systemctl start influxdb
# TimescaleDB安装 (基于PostgreSQL)
sudo apt install -y postgresql postgresql-contrib
sudo sh -c "echo 'deb [signed-by=/usr/share/keyrings/timescale.keyring] https://packagecloud.io/timescale/timescaledb/ubuntu/ $(lsb_release -c -s) main' > /etc/apt/sources.list.d/timescaledb.list"
wget --quiet -O - https://packagecloud.io/timescale/timescaledb/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/timescale.keyring
sudo apt update
sudo apt install -y timescaledb-2-postgresql-14
sudo timescaledb-tune
sudo systemctl restart postgresql
# 安装Python虚拟环境
sudo apt install -y python3-venv python3-dev
# 创建虚拟环境
python3 -m venv smartbuilding-env
source smartbuilding-env/bin/activate
# 安装常用库
pip install paho-mqtt pandas numpy matplotlib influxdb-client
pip install django flask fastapi # 根据web框架需求选择
# 使用nvm安装Node.js
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
source ~/.bashrc
nvm install --lts
npm install -g nodemon pm2
# 安装BACnet-stack
sudo apt install -y cmake
git clone https://github.com/bacnet-stack/bacnet-stack
cd bacnet-stack
make
sudo make install
# 安装KNXd (KNX守护进程)
sudo apt install -y knxd knxd-tools
# 配置KNX接口
sudo knxd -e 1.1.128 -E 1.1.129 -f 9 -u /var/run/knx -D -T -R -S -b tpuarts:/dev/ttyUSB0
# 安装依赖
sudo apt install -y openjdk-11-jdk maven
# 克隆并构建OpenEMS
git clone https://github.com/OpenEMS/openems.git
cd openems
mvn clean install
# 安装Jupyter Notebook
pip install jupyterlab
# 安装能源分析库
pip install energydatamodel pyenergyplus
# 安装Docker
sudo apt install -y docker.io docker-compose
sudo systemctl enable --now docker
sudo usermod -aG docker $USER
# 测试安装
docker run hello-world
version: '3'
services:
mqtt:
image: eclipse-mosquitto
ports:
- "1883:1883"
- "9001:9001"
volumes:
- ./mosquitto.conf:/mosquitto/config/mosquitto.conf
influxdb:
image: influxdb:2.0
ports:
- "8086:8086"
volumes:
- influxdb-data:/var/lib/influxdb2
environment:
- DOCKER_INFLUXDB_INIT_MODE=setup
- DOCKER_INFLUXDB_INIT_USERNAME=admin
- DOCKER_INFLUXDB_INIT_PASSWORD=smartbuilding123
- DOCKER_INFLUXDB_INIT_ORG=smartbuilding
- DOCKER_INFLUXDB_INIT_BUCKET=energy_data
grafana:
image: grafana/grafana
ports:
- "3000:3000"
volumes:
- grafana-data:/var/lib/grafana
depends_on:
- influxdb
volumes:
influxdb-data:
grafana-data:
# 安装UFW
sudo apt install -y ufw
# 基本配置
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow ssh
sudo ufw allow 1883/tcp # MQTT
sudo ufw allow 8086/tcp # InfluxDB
sudo ufw enable
# 安装fail2ban防止暴力破解
sudo apt install -y fail2ban
sudo systemctl enable fail2ban
sudo systemctl start fail2ban
# 自动安全更新
sudo apt install -y unattended-upgrades
sudo dpkg-reconfigure -plow unattended-upgrades
# 安装Prometheus和Node Exporter
wget https://github.com/prometheus/prometheus/releases/download/v2.30.3/prometheus-2.30.3.linux-amd64.tar.gz
tar xvfz prometheus-*.tar.gz
cd prometheus-*
# 配置Prometheus (编辑prometheus.yml)
# 安装ELK Stack (Elasticsearch, Logstash, Kibana)
# 或轻量级替代方案:
sudo apt install -y loki promtail grafana
# 配置日志收集
代码编辑器/IDE:
版本控制:
git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"
git config --global core.editor nano
API测试工具:
文档工具:
通过以上配置,您的Linux系统将具备开发智能建筑和智慧能源管理应用所需的核心组件和环境。根据具体项目需求,您可能需要进一步安装特定协议栈或SDK。