【问题标题】:Installing GNU parallel without root permission在没有 root 权限的情况下安装 GNU 并行
【发布时间】:2015-11-12 15:07:55
【问题描述】:

编辑 2

尝试并行运行后,当我同时运行parallel 和源/homedtic/gsantamaria/parallel/bin/parallel 时,我在终端上得到以下信息:

perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
    LANGUAGE = "en_US:en",
    LC_ALL = (unset),
    LC_PAPER = "en_GB.UTF-8",
    LC_ADDRESS = "en_GB.UTF-8",
    LC_MONETARY = "en_GB.UTF-8",
    LC_NUMERIC = "en_GB.UTF-8",
    LC_TELEPHONE = "en_GB.UTF-8",
    LC_IDENTIFICATION = "en_GB.UTF-8",
    LC_MEASUREMENT = "en_GB.UTF-8",
    LC_TIME = "en_GB.UTF-8",
    LC_NAME = "en_GB.UTF-8",
    LANG = "en_US.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").

注意:即使在上述输出之后,该进程仍在运行。

编辑 1

我的密码是/homedtic/gsantamaria/parallel-20100424 我跑了

  • ./configure --prefix=/homedtic/gsantamaria/parallel(注意-我创建了并行文件夹)
  • make
  • make install

但是,毕竟,现在当我尝试运行 parallel 时,它会显示 bash: parallel: command not found

作为参考,在我运行 3 个命令后,它为三个步骤中的每一个都提供了以下输出:

  1. 第 1 步:

/configure:

checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
configure: creating ./config.status
config.status: creating Makefile
config.status: creating src/Makefile
config.status: creating config.h
config.status: config.h is unchanged
  1. 第 2 步:

make

make  all-recursive
make[1]: Entering directory `/homedtic/gsantamaria/parallel-20100424'
Making all in src
make[2]: Entering directory `/homedtic/gsantamaria/parallel-20100424/src'
pod2man --release='20100424' --center='parallel' \
        --section=1 ./parallel > ./parallel.1
make[2]: Leaving directory `/homedtic/gsantamaria/parallel-20100424/src'
make[2]: Entering directory `/homedtic/gsantamaria/parallel-20100424'
make[2]: Leaving directory `/homedtic/gsantamaria/parallel-20100424'
make[1]: Leaving directory `/homedtic/gsantamaria/parallel-20100424'


I am trying to install GNU's parallel on a server where I don't have access to sudo. I downloaded parallel , used SCP to transfer from local to server, and as per read me I have to do three steps to install:
  1. 第三步:

make install

Making install in src
make[1]: Entering directory `/homedtic/gsantamaria/parallel-20100424/src'
make[2]: Entering directory `/homedtic/gsantamaria/parallel-20100424/src'
test -z "/homedtic/gsantamaria/parallel/bin" || /bin/mkdir -p "/homedtic/gsantamaria/parallel/bin"
 /usr/bin/install -c parallel '/homedtic/gsantamaria/parallel/bin'
test -z "/homedtic/gsantamaria/parallel/share/man/man1" || /bin/mkdir -p "/homedtic/gsantamaria/parallel/share/man/man1"
 /usr/bin/install -c -m 644 parallel.1 '/homedtic/gsantamaria/parallel/share/man/man1'
make[2]: Leaving directory `/homedtic/gsantamaria/parallel-20100424/src'
make[1]: Leaving directory `/homedtic/gsantamaria/parallel-20100424/src'
make[1]: Entering directory `/homedtic/gsantamaria/parallel-20100424'
make[2]: Entering directory `/homedtic/gsantamaria/parallel-20100424'
make[2]: Nothing to be done for `install-exec-am'.
make[2]: Nothing to be done for `install-data-am'.
make[2]: Leaving directory `/homedtic/gsantamaria/parallel-20100424'
make[1]: Leaving directory `/homedtic/gsantamaria/parallel-20100424'

原问题:

  1. ./配置
  2. 制作
  3. 进行安装

我已经成功完成了前两步,但在第三步,即make install,它给出了以下错误:

making install in src
make[1]: Entering directory `/homedtic/gsantamaria/parallel-20100424/src'
make[2]: Entering directory `/homedtic/gsantamaria/parallel-20100424/src'
test -z "/usr/local/bin" || /bin/mkdir -p "/usr/local/bin"
 /usr/bin/install -c parallel '/usr/local/bin'
/usr/bin/install: cannot create regular file `/usr/local/bin/parallel': Permission denied
make[2]: *** [install-binSCRIPTS] Error 1
make[2]: Leaving directory `/homedtic/gsantamaria/parallel-20100424/src'
make[1]: *** [install-am] Error 2
make[1]: Leaving directory `/homedtic/gsantamaria/parallel-20100424/src'
make: *** [install-recursive] Error 1

我认为主线是

/usr/bin/install: cannot create regular file /usr/local/bin/parallel': Permission denied

我想将包含它的所有文件中此路径的实例更改为无需 sudo 或 root 权限即可访问的路径。但是,当我尝试 grep 时,我找不到包含它的文件。

grep -r "/usr/local/bin/parallel" *

我现在能做什么?或者,我怎么可能在没有 root 权限的情况下安装并行?

我尝试检查this,但仍然没有帮助。

有什么建议吗? 提前致谢!

【问题讨论】:

  • install 目标将尝试将编译后的程序安装到/usr/local/bin,但您没有将其安装在那里的权限。您是否尝试过您提到的文档的建议? ./configure --prefix=$HOME && make && make install
  • 感谢您的评论。我试过了,你能检查一下我的新编辑吗?
  • Perl 警告不会阻止 parallel 执行。如果您想避免警告,请确保您的语言环境配置正确。这是一个非常常见的 Perl 常见问题解答,应该很容易在 google 中找到。
  • 是的,我刚刚知道了。那不是我的首要任务。我只需要并行运行。任何想法为什么它可能不起作用?

标签: linux bash unix parallel-processing gnu-parallel


【解决方案1】:
./configure --prefix=<target>

这将使安装在&lt;target&gt;/bin&lt;target&gt;/lib等;照常做make install

选择一个您可以访问的&lt;target&gt;(如果需要,可以在${HOME} 中使用),并调整您的PATH 以包含&lt;target&gt;/bin(或许还可以将MANPATH 包含在&lt;target&gt;/share/man 中,这样您就可以得到也可以访问手册页)。

【讨论】:

  • 谢谢你的回答,我试过了。你能检查一下我的新编辑吗?
  • @HackCode:你需要,我引用,“调整你的PATH 以包含&lt;target&gt;/bin”。那是export PATH=$PATH:/homedtic/gsantamaria/parallel/bin。您可能想将该行添加到您的 .bashrc 或类似的地方。
  • 我尝试了你的建议,我也尝试了添加export PATH="/homedtic/gsantamaria/parallel/bin/:$PATH"并重复了三个步骤,仍然没有成功。 ://
  • @HackCode:请显示ls /homedtic/gsantamaria/parallel/bin/的输出。
  • 输出为parallel,即只有一个文件。
【解决方案2】:

脚本 http://git.savannah.gnu.org/cgit/parallel.git/tree/10seconds_install 首先尝试需要 root 的安装;然后是个人安装,如果也失败了:最小安装。

它可能只是开箱即用,如果不是,那么它可能会成为灵感。

【讨论】:

    【解决方案3】:

    这是为我做的,没有 root 访问权限:

    (wget pi.dk/3 -qO - ||  curl pi.dk/3/) | bash
    

    this link

    【讨论】:

    • w 从未知服务器获取脚本并将其直接通过管道传输到 bash?如果 pi.dk/3 更改脚本会怎样?
    • 这是一个有效的观点。您也可以现在从 pi.dk/3 下载脚本,并将其发布在这里作为答案。该脚本只需下载最新版本的 GNU Parallel,检查签名并安装它。
    【解决方案4】:

    您可以考虑使用 linuxbrew (http://linuxbrew.sh)

    brew install parallel
    

    【讨论】:

    • +1,这非常适合并行,这是一个很好的解决方案,因为您避免从源代码编译所有内容。
    【解决方案5】:

    如果你有 conda,conda install -c conda-forge parallel 也是单行解决方案。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-02-25
      • 2013-05-29
      • 1970-01-01
      • 1970-01-01
      • 2012-12-20
      • 1970-01-01
      • 2011-04-13
      相关资源
      最近更新 更多