我试图在我的机器上安装Glog 0.3.4 https://github.com/google/glog/releases,即使我没有sudo访问权限。我运行了以下命令:
./configure --prefix=/usr/local
make
make install
这会导致以下错误
$ make install
make[1]: Entering directory `/glog-0.3.4'
/bin/mkdir -p '/usr/local/lib'
/bin/bash ./libtool --mode=install /usr/bin/install -c libglog.la
'/usr/local/lib'
libtool: install: /usr/bin/install -c .libs/libglog.so.0.0.0
/usr/local/lib/libglog.so.0.0.0
/usr/bin/install: cannot create regular file
'/usr/local/lib/libglog.so.0.0.0': Permission denied
make[1]: *** [install-libLTLIBRARIES] Error 1
如何克服此错误并完成我的安装?我没有任何sudo访问该机器。谢谢!
/usr/local
通常由root拥有,因此如果没有sudo,你将无法在其中写入。为什么不将它安装到您的主目录中呢?
谈到它后,我意识到我忘记了$HOME/.local/bin
。此目录(如果存在)已经存在于您的PATH中。因此,您可以使用/usr/local/
而不是安装到$HOME/.local/
。只需确保可执行文件在$HOME/.local/bin/
或符号链接中结束。
mkdir $HOME/.glog_install
./configure --prefix=$HOME/.glog_install
make
make install
然后你可以将可执行文件添加到你的路径:PATH=$PATH:~/.glog_install/path/to/bin
事实上,如果您计划在主目录中安装多个程序,您可能希望让事情更有条理。在这种情况下,我将为我的主目录中的所有用户安装的二进制文件创建一个目录,并将已安装的二进制文件符号链接到其中。然后,您只需将一个目录添加到路径中即可。所以:
#make bin directory in home
mkdir $HOME/bin
#add ~/bin to PATH
PATH=$PATH:$HOME/bin
#install first program somewhere in home
mkdir $HOME/.program_1_files
./configure --prefix=$HOME/.program_1_files
make
make install
#link program 1 executables to ~/bin
ln -s ~/.program_1_files/path/to/executable ~/bin/program1
mkdir $HOME/.program_2_files
#...same steps as above
之后,在命令行上运行program1
将调用该程序(对于您的用户)。