标签: raspberry pi

  • 在树莓派上启用 PostgreSQL 对外服务

    在树莓派上启用 PostgreSQL 对外服务

    以前写过一篇笔记《树莓派4 安装 OpenResty + PostgreSQL》,记录如何在树莓派上装 PostgreSQL,不过那时候只是为了在上面做开发,没有考虑过对外服务。如今为了能够在别的机器上做开发,所以要想办法配置一下对外服务。

    0. 系统

    • Raspberry Pi 4B
    • Debian 10 buster 更新到最新
    • 如上篇文章所述安装和配置 PostgrSQL

    1. 判断本地运行状态。

    # 查看服务状态
    sudo service --status-all
    # [ + ]  postgresql
    
    # 查看端口
    sudo netstat -plunt | grep postgres
    # tcp        0      0 127.0.0.1:5432            0.0.0.0:*               LISTEN      6629/postgres

    服务在运行,端口也在侦听,直接连接,失败,被服务器拒绝。

    2. 安装防火墙工具调整规则

    猜测可能跟防火墙有关,iptables 我不熟,所以安装 ufw 帮忙:

    # 安装
    sudo apt install ufw
    
    # 启动端口
    sudo ufw allow 5432
    sudo ufw allow from 10.0.0.10 # 我的 iMac

    3. 修改侦听端口

    修改防火墙后还是连不上。使用 Telnet 工具可以本地连接,但不能远程连接,推断应该是侦听端口的问题。回去仔细看了一下端口状态,觉得应该是端口没配好,所以修改配置,侦听 0.0.0.0,然后重启 PostgreSQL 服务,再连接就成功了。

    listen_addresses = '0.0.0.0' 
    port = 5432
    host    all             all              0.0.0.0/0                       md5
    host    all             all              ::/0                            md5

    参考链接:

  • 在 Raspberry Pi 4B 上跑 Puppeteer

    在 Raspberry Pi 4B 上跑 Puppeteer

    首先,我使用的是 Raspberry Pi 4B,安装的是官方 Debian 10(buster)系统,并且保持升级到最新版。

    因为集成的 chromium 核心组件的关系,Puppeteer 一直无法跑在 Raspberry Pi 上,需要自己安装 Chromium Browser,然后修改 Puppeteer 启动的浏览器,以实现功能。这个一搜就能找到,比如 https://stackoverflow.com/questions/60129309/puppeteer-on-raspberry-pi-zero-w

    但是我之前一直没能跑起来的问题在于,sudo apt install chromium-browser 会失败,报错找不到目标模块,只能装 chromium-codecs-ffmpeg,然后没用。

    然后我受前几天完成 WSL 配置的启发,使用 apt search chromium 搜索名字接近的包,发现了真正原因:很简单,chromium-browser 当然是存在的,只是因为我当前系统配置的关系,它希望安装 stable 版本的软件,不愿意安装 testing 版本,所以不给装。

    接下来我面临两个选择:

    1. 修改配置
    2. 试试 Chromium

    方案二更容易尝试。于是

    # 安装
    sudo apt install chromium
    
    # 查看路径
    whereis chromium

    修改 JS 代码:

    const browser = await puppeteer.launch({
      executablePath: '/usr/bin/chromium',
      // 其它配置项
      // ....
    }); 

    再执行,成功。啊,终于搞定了手边所有平台跑 Puppeteer 了,哦耶。

  • 树莓派4 安装 OpenResty + PostgreSQL

    树莓派4 安装 OpenResty + PostgreSQL

    为了给 OpenResty.org 添加论坛链接,在本地搭建开发环境,选择用树莓派搞。记录一下,以备将来回顾。

    (更多…)
  • 解决 Raspberry Pi 4 安装 php-mbstring/php-curl 的问题

    解决 Raspberry Pi 4 安装 php-mbstring/php-curl 的问题

    最近要在 flarum 上做二次开发,尝试直接用 php -S localhost:8080 未果,于是打算在树莓派上搭个开发环境,省得它整日落灰。

    因为在本地创建过仓库,所以这次直接从 GitHub clone 项目下来,然后打算执行 composer install 安装依赖。结果提示差了 php-mbstring(解决汉字等多字节字符)和 php-curl(用于远程请求)两个模块。然后我就打算用 apt install php-curl 安装模块,没想到失败了,仔细看错误信息,因为这个模块依赖 libcurl3,但是系统里是 libcurl4,所以不行。

    那就安装 libcurl3 呗,结果系统认为明显 libcurl4 更新,不给装 3,哪怕删了重装都不行。

    后来查了半天,找到答案。原来我添加的源是 stretch 的,也就是面向 Debian 9 的;而 Raspberry Pi 的系统是基于 Debian 10,也就是 buster 的,所以依赖处理上,两方面就冲突了。

    这个时候,需要用 sh -c 'echo "deb https://packages.sury.org/php/ buster main" > /etc/apt/sources.list.d/php.list' 把属于“buster”的源添加进系统,接着删掉之前 stretch 的源,然后 apt update 之后,就可以正常安装了。


    参考链接:https://github.com/oerdnj/deb.sury.org/issues/1193