8

我正在尝试编译 ffmpeg 并且 tmp dir 存在问题,因为使用 noexec 安装:

./configure --enable-libmp3lame --enable-libvorbis --disable-mmx --enable-shared 无法在 /tmp 中创建和执行文件。将 TMPDIR 环境变量设置为另一个目录,并确保它没有挂载 noexec。理智测试失败。

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

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

4

2 回答 2

24

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

$ 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 ...

希望它可以帮助别人;-)

于 2012-09-24T22:16:15.687 回答
4

尝试这个:

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

如果您想使用新的 TMPDIR 执行多个命令,并假设您使用 bash 作为 shell,export请先执行它。

export TMPDIR=/some/other/dir
./configure --enable-libmp3lame --enable-libvorbis --disable-mmx --enable-shared
...
于 2012-07-28T00:38:21.667 回答