1

我正在尝试在我的机器上安装 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 访问权限。谢谢!

4

1 回答 1

0

/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在命令行上运行将调用程序(对于您的用户。)

于 2017-12-21T18:38:58.583 回答