工欲善其事必先利其器,软件就是生信人的武器,这篇文就是分享使用 cmake 配置遇到 permission denied 时应该怎么解决。

一般错误出现的情况

一般来说,cmake 安装软件的流程都是大致如下:

1
2
3
4
$ git clone xxx # 下载某个软件
$ cd xxx # 进入下载的文件夹中
$ cmake . # cmake 进行编译配置
$ make install # make 进行安装

在最后一步 make install 的时候,有时会出现 permission denied。

如果具有 sudo 权限

这种情况一般发生在自己的电脑上(root 用户),又或者拥有 sudo 权限,加一个 sudo 即可。

1
$ sudo make install

如果不具有 sudo 权限

本篇文章的重心,permission denied 的原因是自己没有在 /usr/local 配置文件的权限而又无法通过 sudo 解决,这个路径是很多软件默认的安装路径,但同样也是可选的,所以解决方法就是把安装路径改到自己有权限的路径即可。

1
2
3
# cmake 时指定其他安装路径
$ cmake . -DCMAKE_INSTALL_PREFIX:PATH=/xxx/xxx
$ make install
  • .:此处的 . 表示需要编译的软件位于当前文件夹中,如果需要编译的软件并非位于当前文件夹下可进行修改。
  • -DCMAKE_INSTALL_PREFIX :指定 cmake 安装的途径,将此处的 /xxx/xxx 调整为自己具有权限的路径即可正常安装。

其他

如果使用 make 安装发生这种问题也不用慌,解决方法是相近的:

1
2
3
$ ./configure --prefix=/xxx/xxx
$ make
$ make install

如果没有 configure 配置文件可以按照下面的方法进行:

1
2
$ make
$ make prefix=/xxx/xxx install

之后可把安装路径配置进 PATH 变量里(修改 ~/.bashrc),方便之后调用。