[关闭]
@Mr-13 2020-01-02T04:51:15.000000Z 字数 1742 阅读 56

Lixnux 环境变量设置(个人理解)

Linux


前言:

  环境变量这个东西一直是没怎么理解的,在win下做开发的时候,.net包办了一切;到了CentOS,绝大部分使用的软件用YUM安装也基本上都包办了。作为一个纯粹瞎折腾的渣渣,觉得实在是有点脸红。也巧,配置Flask+Gunicorn的时候,一直提示找不到命令参数。

  折腾出来了时候,权且做笔记。也作为个人理解。不充分的地方后面再慢慢补充(路漫漫啊......)



  用python3做resetful接口服务(测试),用了Flask + Gunicorn,初次运行gunicorn的时候一直报错,如下:

  1. # api_test是自己写的*.py格式的可执行脚本
  2. [root@mr13 ~] gunicorn -w 4 -b 0.0.0.0:8000 api_test:app
  3. -bash: gunicorn: command not found


  我就很郁闷啊,不是说gunicorn安装超级简单么,直接用就行了么,咋还这么事儿呢。

  百度了一下,发现了两篇有指导性意见的文章:

  1. linux下提示bash:command not found
  2. 在CentOs7上部署Gunicorn



  这两篇文章内容就不贴了;参照引用文章的状况,我也试了一下:gunicorn安装成功后,找到安装目录就;引用时以路径方式调用,是没有问题的:

  1. [root@mr13 myflask]# /usr/local/python3/bin/gunicorn -w 4 -b 0.0.0.0:8000 api_test:app

  那既然安装成功了,命令不能直接使用,就属于环境变量的问题了。稍加引用下两篇文章的内容:

首先就要考虑root 的$PATH里是否已经包含了这些环境变量。

主要是这四个:/bin ,/usr/bin,/sbin,/usr/sbin。

  个人理解,环境变量就是把安装的应用文件或者快捷方式(软连接),路径声明清楚,让系统能够找到。
  那我们直接把 /usr/local/python3/bin/gunicorn 通过建立软链接的方式,配置到 /usr/bin 路径下是不是就可以了呢,试一下:

  1. # ln -s f2 f1 是创建软连接,删除软连接文件,原始文件不受影响
  2. # ln f2 f1 是创建硬链接,删除硬链接文件,原始文件同时被删除
  3. # 无论软连接还是硬链接,原始文件与连接文件发生变化,另一处同时发生变化
  4. [root@mr13 ~] ln -s /usr/local/python3/bin/gunicorn /usr/bin

  软链接创建完成后,查一下文件:

  1. [root@mr13 ~] find / -name gunicorn
  2. /usr/bin/gunicorn # 这是创建的软链接文件
  3. /usr/local/python3/bin/gunicorn # 这是实际安装目录的文件(被创建软链的文件)
  4. /usr/local/python3/lib/python3.7/site-packages/gunicorn # 这是pip3下载安装的文件

  OK,软链接床架成功,不带路径,用软连接执行命令试一下:

  1. [root@mr13 ~] gunicorn -w 4 -b 0.0.0.0:8000 api_test:app
  2. [2020-01-02 09:18:43 +0800] [31752] [INFO] Starting gunicorn 20.0.4
  3. [2020-01-02 09:18:43 +0800] [31752] [INFO] Listening at: http://0.0.0.0:8000 (31752)
  4. [2020-01-02 09:18:43 +0800] [31752] [INFO] Using worker: sync
  5. [2020-01-02 09:18:43 +0800] [31755] [INFO] Booting worker with pid: 31755
  6. [2020-01-02 09:18:44 +0800] [31756] [INFO] Booting worker with pid: 31756
  7. [2020-01-02 09:18:44 +0800] [31757] [INFO] Booting worker with pid: 31757
  8. [2020-01-02 09:18:44 +0800] [31758] [INFO] Booting worker with pid: 31758

  OK,搞定!

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注