如何保持一个干净的系统


Table of Contents

由于工作需要经常会使用多种语言, 比如 python, golang, lua, javascript等, 各种语言都有自己的包管理器,像python的包管理器pip, lua的包管理器luarocks。。。

每个包管理器安装package的方式,位置都不相同,对于一个有洁癖的人来说,

ls ~/ -al

后各种各样的.something简直是场灾难, 所以保持一个干净的系统是非常必要的, 比如把相关语言的package都放到一个目录(我选择放到$HOME/repo/{language})下

请不要使用root用户,或者sudo来安装非必要的软件包

python

我的python环境是pip+virtualenv+virtualenvwrapper, pip可以有多种使用方式:

  • sudo sudo安装的package放到/usr/lib64/python-{verison}目录下, 这可能会与系统的包管理器所安装的python package冲突, 比如docker可以使用

    sudo pacman -S docker

    也可以使用

    sudo pip install docker

    但更新系统包时可能有冲突导致无法更新

  • --user*(-U) 使用本地安装,不需要*sudo权限, 安装的package会放到$HOME/.local目录下

  • virtualenv python的各种依赖包环境分离靠的就是virtualenv, 它会把安装的package放到$WORKON_HOME这个环境变量下, 我平时也主要使用这个,但一些常用的package, 像http,docker-compose,pelican等, 我不想在使用时还得

    workon {virtualenv name}

    然后才能使用, 太麻烦

最有效的方法是搭配--uservirtualenv

  1. 设置--user的安装目录

    export PYTHONUSERBASE=$HOME/repo/python
  2. 设置virtualenv的安装目录

    export WORKON_HOME=$HOME/repo/python/virtualenv
    source $HOME/repo/python/bin/virtualenvwrapper.sh
  3. 设置PATH变量

    export PATH=$PATH:$HOME/repo/python/bin
  4. 其它设置 python终端自从3.4后,默认会记录命令历史到 $HOME/.python_history, 这也需要修改一下

    export PYTHONHISTFILE=$HOME/repo/python/history

然后无论是pip install package --user还是mkvirtualenvpip install package, 所安装的package都会放到$HOME/repo/python目录下

参考文档:

golang

与python同理

  1. 设置GOPATH变量

    export GOPATH=$HOME/repo/golang
  2. 设置PATH变量

    export PATH=$PATH:$HOME/repo/python/bin:$HOME/repo/golang/bin

lua

  1. 设置luarocks安装默认参数

    alias luarocks='luarocks --tree=$HOME/repo/lua'
  2. 设置LUA_PATHLUA_CPATH变量

    export LUA_PATH="$HOME/repo/lua/share/lua/5.3/?.lua;$HOME/repo/lua/share/lua/5.3/?/init.lua;$LUA_PATH;"
    export LUA_CPATH="$HOME/repo/lua/lib/lua/5.3/?.so;$LUA_CPATH;"
  3. 设置PATH变量

    export PATH=$PATH:$HOME/repo/python/bin:$HOME/repo/golang/bin:$HOME/repo/lua/bin

javascript

  1. 修改npmrc配置

    npm config set prefix $HOME/repo/npm
    npm config set cache $HOME/repo/npm
  2. 设置NODE_PATH变量

    export NODE_PATH="$HOME/repo/npm/lib/node_modules:$NODE_PATH"
  3. 设置PATH变量

    export PATH=$PATH:$HOME/repo/python/bin:$HOME/repo/golang/bin:$HOME/repo/lua/bin:$HOME/repo/npm/bin
  4. 测试

    npm install -g js-beautify # 将会安装到$HOME/repo/npm目录
    npm install js-beautify # 将会安装到当前目录下

最后, 把相关代码放到$HOME/.bashrc中, 就可以享受一个相对干净的系统了

作者: honmaple
链接: https://honmaple.me/articles/2018/07/如何保持一个干净的系统.html
版权: CC BY-NC-SA 4.0 知识共享署名-非商业性使用-相同方式共享4.0国际许可协议
wechat
alipay

加载评论