之前的用实验室的服务器,因为某些原因,使用的用户没有root权限。linux的非root用户很多软件无法安装,非常的不方便。我的方法是使用brew来代替系统的包管理工具。brew是最先用在mac上的包管理工具,可以将所有的包托管在user本地的环境内。下面的文档中运行的时候记得将用户名改成自己的。

1. 安装anaconda

下载官方anaconda python安装包(minicondo也行),将conda加入~/.bashrc的系统变量中(在安装中会提示你运行 conda init,点yes就会直接复制到~/.bashrc中了)。这一步的目的是去安装curl, curl是下载安装brew必备的工具,此时curl会安装在/home/username/anaconda3/bin中

conda install curl --use-local

建议这里装完再装一个vim,方便文本编辑

2. 安装brew

使用curl命令下载安装brew,中间有一些错误不用管他,结束后输入brew有返回就说明安装成功

sh -c "$(curl -fsSL https://raw.githubusercontent.com/Linuxbrew/install/master/install.sh)"

之后将一下brew加入~/.bashrc中

export HOMEBREW_PREFIX="/home/username/.linuxbrew";
export HOMEBREW_CELLAR="/home/username/.linuxbrew/Cellar";
export HOMEBREW_REPOSITORY="/home/username/.linuxbrew/Homebrew";
export PATH="/home/username/.linuxbrew/bin:/home/username/.linuxbrew/sbin:$PATH";
export MANPATH="/home/username/.linuxbrew/share/man:$MANPATH";
export INFOPATH="/home/username/.linuxbrew/share/info:$INFOPATH";

此时保证brew已经是一个可以在终端被调用, 接下来是关键的一步

在/home/username/.linuxbrew/Homebrew/Library/Homebrew/brew.sh#L200上进行加上一行

if [[ -n "$HOMEBREW_FORCE_BREWED_CURL" &&
-x "$HOMEBREW_PREFIX/opt/curl/bin/curl" ]] &&
"$HOMEBREW_PREFIX/opt/curl/bin/curl" --version >/dev/null
then
HOMEBREW_CURL="$HOMEBREW_PREFIX/opt/curl/bin/curl"
elif [[ -n "$HOMEBREW_DEVELOPER" && -x "$HOMEBREW_CURL_PATH" ]]
then
HOMEBREW_CURL="$HOMEBREW_CURL_PATH"
else
HOMEBREW_CURL="curl"
fi
HOMEBREW_CURL="/home/username/anaconda/bin/curl" # 加上这一行!

然后输入 brew install curl

装完之后brew.sh会自动抹去自己之前的修改 : ),然后brew就正式能用了

比如 brew install tmux, brew install htop,只有brew有的包都可以装(参考包列表https://formulae.brew.sh/formula/)

3. 手动编译安装软件包

如果brew里面没有某个包,需要自己编译的话,一般的linux软件包都是make编译的,一般修改下configure然后再make && make install 就好了,如下三行命令:

./configure --prefix=/home/username/.local
make
make install
# 如果要卸载 运行 make uninstall

最后分享下我的~/.bashrc ,其中 ~/.local/bin~/.local/lib加到PATH里面是为了自己编译安装用的。

export PATH=~/.local/bin:$PATH
export C_INCLUDE_PATH=$C_INCLUDE_PATH:~/.local/include
export CPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH:~/.local/include
export LD_LIBRARY_PATH=~/.local/lib:$LD_LIBRARY_PATH # >>> conda initialize >>>
# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$('/home/username/anaconda3/bin/conda' 'shell.bash' 'hook' 2> /dev/null)"
if [ $? -eq 0 ]; then
eval "$__conda_setup"
else
if [ -f "/home/username/anaconda3/etc/profile.d/conda.sh" ]; then
. "/home/username/anaconda3/etc/profile.d/conda.sh"
else
export PATH="/home/username/anaconda3/bin:$PATH"
fi
fi
unset __conda_setup
# <<< conda initialize <<< export HOMEBREW_PREFIX="/home/username/.linuxbrew";
export HOMEBREW_CELLAR="/home/username/.linuxbrew/Cellar";
export HOMEBREW_REPOSITORY="/home/username/.linuxbrew/Homebrew";
export PATH="/home/username/.linuxbrew/bin:/home/username/.linuxbrew/sbin:$PATH";
export MANPATH="/home/username/.linuxbrew/share/man:$MANPATH";
export INFOPATH="/home/username/.linuxbrew/share/info:$INFOPATH";

linux非root用户下安装软件,搭建生产环境的更多相关文章

  1. Linux下非root用户如何安装软件

    Linux下非root用户如何安装软件 从windows转移到Linux的用户最开始总会有各种不适,因为这种不适最终放弃linux的不在少数.对于这类人只能说可惜,还没有领略到linux的美好就过早放 ...

  2. [转载]Linux下非root用户如何安装软件

    [转载]Linux下非root用户如何安装软件 来源:https://tlanyan.me/work-with-linux-without-root-permission/ 这是本人遇到的实际问题,之 ...

  3. zzw原创_非root用户下安装nginx

    想自己安装nginx,又不相用到root用户. 非root用户下(本文为用户bdctool)来ngnix安装,要依赖pcre库.zlib库等, 1. 下载依赖包:下载地址 pcre(www.pcre. ...

  4. CentOS6非root用户下安装及配置CDH5.3.0

    #install lsb packagesudo yum install -y redhat-lsb #install net-tools package sudo yum install -y ne ...

  5. ubuntu下非root用户下获得使用wireshark的权限

    在非root用户下不能使用wireshark用来抓包,所以需要进行以下操作: sudo groupadd wireshark sudo chgrp wireshark /usr/bin/dumpcap ...

  6. linux非root用户安装jdk1.8

    如题,先到 Oracle 官方网站 下载1.8版本的 JDK 压缩包(jdk-8u221-linux-x64.tar.gz)到本地(如D盘的soft目录),然后开始进入linux的非root用户(如w ...

  7. 【tf.keras】Linux 非 root 用户安装 CUDA 和 cuDNN

    TensorFlow 2.0 for Linux 使用时报错:(cuDNN 版本低了) E tensorflow/stream_executor/cuda/cuda_dnn.cc:319] Loade ...

  8. linux非root用户安装ncurses-devel依赖

    很明显,如果我们通过yum或rpm下载安装,始终无法绕开root用户,除非我们不用yum或rpm.嗯,我们直接用源码安装.下载源码包,到http://ftp.gnu.org/gnu/ncurses/我 ...

  9. linux非root用户执行开机启动程序

    问题 开机启动其他用户的程序或者说非root用户执行开机启动 编写开机启动脚本 编写开机启动脚本apple_tree,放到/etc/init.d,系统启动时会自动执行. 例如,/etc/init.d/ ...

随机推荐

  1. 一文了解:Redis的AOF持久化

    Redis的AOF持久化 每当Redis-Server接收到写数据时,就把命令以文本形式追加到AOF文件里,当重启Redis服务时,AOF文件里的命令会被重新执行一次,重新恢复数据.当AOF过大时将重 ...

  2. vscode中配置git

    vscode中配置git vscode 报错 未找到Git.请安装Git,或在"git.path" 设置中配置 第一步安装git git安装方法自行解决,提供git下载连接! gi ...

  3. Kubernetes 服务发现

    目录 什么是服务发现? 环境变量 DNS 服务 Linux 中 DNS 查询原理 Kubernetes 中 DNS 查询原理 调试 DNS 服务 存根域及上游 DNS 什么是服务发现? 服务发现就是一 ...

  4. 6个美观的纯CSS渐变背景代码分享(亲测有效)

    样式1 background-image: linear-gradient(160deg, #b100ff 20%,#00b3ff 80%); 样式2 background-image: linear ...

  5. linux command line learn - get the absolute path of a file

    get the absolute path of a file in linux readlink -f filenme [heshuai@login01 3_Variation_calling]$ ...

  6. 40道经典java多线程面试题

    40道经典java多线程面试题 题目来源 看完了java并发编程的艺术,自认为多线程"大成",然后找了一些面试题,也发现了一些不足. 一下问题来源于网上的博客,答案均为本人个人见解 ...

  7. 利用SSH端口转发实现远程访问内网主机远程桌面(一) 建立SSH转发

    近期家里更换了移动的宽带,拨号后拿到的是10开头的内网IP,就不能像之前一样通过路由器的端口映射实现从外网访问主机的远程桌面.这种情况下可以利用一台具有公网IP的服务器充当中转,利用SSH的隧道转发功 ...

  8. 记一次找回win7密码

    虚拟机密码忘了.   修改启动顺序为CD,设置虚拟机光盘镜像为kali ISO(这里用的是kali 2017.2). 开启按f2进入kali live 模式 fdisk -l 查看磁盘分区,找到win ...

  9. node实现后台权限管理系统

    本文面向的是node初学者,目标是搭建一个基础的后台权限系统.使用的node框架是上手最简单的express,模板是ejs,这些在node入门的书籍中都有介绍说明,所以应该是难度较低的. 对于node ...

  10. jquery实现表格导入到Excel(加图片)

      话不多说直接上代码 第一步:导入jquery的插件https://github.com/rainabba/jquery-table2excel HTML部分: 第二步:添加一个按钮 <but ...