我正在尝试为我的持续集成服务器设置电子邮件通知。我有一个脚本,它在构建成功时使用 nail 发送电子邮件:
#!/bin/bash
echo "Build Worked!" | nail -A myisp -s 'Build Success' [email protected]
当我使用 命令行运行此命令时sh build-worked
,它可以正常工作,并且我会收到电子邮件。但是,当我启动执行相同脚本的持续集成服务器时,出现以下错误:
nail: /opt/bitnami/common/lib/libssl.so.0.9.8: no version information available (required by nail)
nail: /opt/bitnami/common/lib/libcrypto.so.0.9.8: no version information available (required by nail)
Error with certificate at depth: 0
issuer = /C=ZA/ST=Western Cape/L=Cape Town/O=Thawte Consulting cc/OU=Certification Services Division/CN=Thawte Premium Server CA/[email protected]
subject = /C=US/ST=California/L=Mountain View/O=Google Inc/CN=smtp.gmail.com
err 20: unable to get local issuer certificate
Continue (y/n)? could not initiate SSL/TLS connection: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
. . . message not sent.
我肯定弄乱了一些配置,有什么想法吗?
答案1
某些东西可以从 shell 运行,但无法从cron
或init
或daemon
其他环境运行的问题通常是由环境差异引起的。
- 使用可执行文件和数据文件的绝对路径
- 明确设置你的
PATH
变量以确保它包含你需要的内容 - 明确设置您的流程所需的其他环境变量
由于它看起来像是nail
在抱怨某些库,所以很可能环境变量在一个环境中指向一个方向,而在另一个环境中指向另一个方向(或者根本不指向)。
我不熟悉 BitNami,但在我的系统上,这些库位于/lib
和/usr/lib
(和/lib/i586
和类似)。