Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Shell 如何将TMPDIR环境变量设置到另一个目录?_Shell_Unix - Fatal编程技术网

Shell 如何将TMPDIR环境变量设置到另一个目录?

Shell 如何将TMPDIR环境变量设置到另一个目录?,shell,unix,Shell,Unix,我正忙于编译ffmpeg,tmp dir有一个问题,因为它是用noexec装载的: ./configure--enable-libmp3lame--enable libvorbis--disable mmx --启用共享无法在/tmp中创建和执行文件。将TMPDIR环境变量设置为另一个目录,并确保 未安装noexec。健全测试失败 如果您认为configure出错,请确保您正在使用 来自SVN的最新版本。如果最新版本失败,请报告 ffmpeg的问题-user@mplayerhq.hu邮件列表或I

我正忙于编译ffmpeg,tmp dir有一个问题,因为它是用noexec装载的:

./configure--enable-libmp3lame--enable libvorbis--disable mmx --启用共享无法在/tmp中创建和执行文件。将TMPDIR环境变量设置为另一个目录,并确保 未安装noexec。健全测试失败

如果您认为configure出错,请确保您正在使用 来自SVN的最新版本。如果最新版本失败,请报告 ffmpeg的问题-user@mplayerhq.hu邮件列表或IRC#ffmpeg on irc.freenode.net。包括由生成的日志文件“config.err” 配置,因为这将有助于解决问题

如何将TMPDIR环境变量设置到另一个目录?

尝试以下操作:

TMPDIR=/some/other/dir ./configure --enable-libmp3lame --enable-libvorbis --disable-mmx --enable-shared
如果您想使用新的TMPDIR执行多个命令,并且假设您使用bash作为shell,
export
it优先

export TMPDIR=/some/other/dir
./configure --enable-libmp3lame --enable-libvorbis --disable-mmx --enable-shared
...

我能够使用下面的代码完成它:

$ export TMPDIR=~/tmp-ffmpeg

$ mkdir $TMPDIR

$ ./configure \
  --enable-gpl \
  --enable-version3 \
  --enable-shared \
  --enable-nonfree \
  --enable-postproc \
  --enable-libfaac \
  --enable-libmp3lame \
  --enable-libopencore-amrnb \
  --enable-libopencore-amrwb \
  --enable-libtheora \
  --enable-libvorbis \
  --enable-libvpx \
  --enable-libx264 \
  --enable-libxvid \
  --enable-x11grab \
  --extra-cflags="-I/usr/local/include" \
  --extra-ldflags="-L/usr/local/lib"

$ make
$ make install
$ rm -rf $TMPDIR
$ unset TMPDIR
还有
mktemp(1)
命令。因此,您可以按如下方式设置TMPDIR:

$ TMPDIR="$(mktemp -d -q ~/tmp/tmp.XXXXX)"
$ echo $TMPDIR
/home/marcelo/tmp/tmp.I8V9H
这应该适用于GNU coreutils以及BSD(macOs、FreeBSD等)。另外请注意,您不需要导出TMPDIR,然后将其取消设置。相反,请尝试直接传递变量以配置:

$ TMPDIR="/foo/bar/baz" ./configure ...

希望它能帮助别人;-)

export
是POSIX,不是特定于bash的。您的示例应该适用于任何POSIX shell。请尝试
unset TMPDIR
而不是
export TMPDIR=
。空字符串不是TMPDIR的良好默认值。我的案例:PKG_CONFIG_PATH=“$HOME/ffmpeg_build/lib/pkgconfig”。/configure--prefix=“$HOME/ffmpeg_build”--extra-cflags=“-I$HOME/ffmpeg_build/include”--extra-ldflags=“-L$HOME/ffmpeg_build/lib-ldl”--bindir=“$HOME/bin”--PKG-CONFIG flags=“-static”--enable gpl--enable nonfree--enable-libfdk_aac--enable libfreetype--enable-libmp3lame--enable libopus--enable libvorbis--enable libvpx--enable-libx264--enable-libx265无法在/tmp中创建和执行文件。将TMPDIR环境变量设置为另一个目录,并确保它未装入noexec。健全测试失败。