Ubuntu 16.04下Heroku CLI无响应问题求助
我之前在Ubuntu 16.04上踩过完全一样的坑——不管是用官方脚本还是snap安装,都显示安装成功,但一执行heroku login这类命令,终端直接僵住,连个错误提示都没有,折腾了好半天终于找到几个可行的解决方向,你可以挨个试试:
1. 先验证snap安装的CLI路径与权限
如果是用snap装的,有时候系统PATH没正确识别snap的可执行文件路径,导致命令执行时卡住。你可以先试试用完整的snap命令来调用:
snap run heroku login
如果这个命令能正常弹出登录提示,那就是PATH的问题。把snap的bin目录(一般是/snap/bin)添加到你的~/.bashrc或者~/.profile文件里,比如在文件末尾加一行:
export PATH="$PATH:/snap/bin"
然后执行source ~/.bashrc刷新环境变量,再试普通的heroku login。
2. 排查网络连接与证书问题
Heroku CLI需要和远程API通信,Ubuntu 16.04的老系统可能存在CA证书过期或者DNS解析异常的情况,导致连接超时卡住。先测试下能不能正常访问Heroku的API:
curl https://api.heroku.com/
如果curl也卡住,先尝试更换DNS服务器(比如改成8.8.8.8),然后更新系统的CA证书:
sudo apt-get update && sudo apt-get install --reinstall ca-certificates
更新完成后再重新测试curl和Heroku命令。
3. 改用手动下载二进制包的安装方式
官方脚本和snap在老系统上可能有兼容性问题,试试手动安装二进制包:
- 先彻底卸载现有版本:
# 卸载snap版本 sudo snap remove heroku # 卸载脚本安装的版本 sudo rm -rf /usr/local/heroku /usr/bin/heroku - 下载适配Ubuntu 16.04的64位二进制包(这里选的是v7.60.0版本,是比较稳定的兼容版本):
wget https://cli-assets.heroku.com/heroku-v7.60.0-linux-x64.tar.gz - 解压到系统库目录:
sudo tar -xvzf heroku-v7.60.0-linux-x64.tar.gz -C /usr/local/lib - 创建软链接到系统可执行目录:
sudo ln -s /usr/local/lib/heroku/bin/heroku /usr/bin/heroku - 先测试版本号:
heroku --version,如果能正常输出,再尝试heroku login。
4. 检查Python环境兼容性
Heroku CLI依赖Python,Ubuntu 16.04默认的Python 2.7可能和新版本CLI存在兼容性问题。你可以试试用Python 3来运行CLI:
python3 /usr/bin/heroku login
如果这个命令能正常工作,你可以修改heroku可执行文件的shebang行:
sudo nano /usr/bin/heroku
把开头的#!/usr/bin/env python改成#!/usr/bin/env python3,保存退出后,普通的heroku命令就会用Python 3运行了。
内容的提问来源于stack exchange,提问作者Bryan Grove

