gtags 时出错:设备上没有剩余空间

gtags 时出错:设备上没有剩余空间

gtags我一生中第一次尝试使用但出现错误:

/usr/bin/sort: write failed: /tmp/sortDGCa2E: No space left on device

df -h输出:

Filesystem      Size  Used Avail Use% Mounted on
udev            3.9G     0  3.9G   0% /dev
tmpfs           797M  9.3M  788M   2% /run
/dev/sda1        31G  5.7G   24G  20% /
tmpfs           3.9G   32K  3.9G   1% /dev/shm
tmpfs           5.0M  4.0K  5.0M   1% /run/lock
tmpfs           3.9G     0  3.9G   0% /sys/fs/cgroup
/dev/sda5       2.9G  278M  2.4G  11% /var
/dev/sda8        64G   15G   47G  24% /home
/dev/sda7       560M   55M  465M  11% /tmp
tmpfs           797M   28K  797M   1% /run/user/115
tmpfs           797M   28K  797M   1% /run/user/1000

df -i输出:

Filesystem      Inodes  IUsed   IFree IUse% Mounted on
udev           1017293    369 1016924    1% /dev
tmpfs          1020112    625 1019487    1% /run
/dev/sda1      2056192 190263 1865929   10% /
tmpfs          1020112      7 1020105    1% /dev/shm
tmpfs          1020112      5 1020107    1% /run/lock
tmpfs          1020112     15 1020097    1% /sys/fs/cgroup
/dev/sda5       192384  10240  182144    6% /var
/dev/sda8      4243456 243436 4000020    6% /home
/dev/sda7        37440     74   37366    1% /tmp
tmpfs          1020112     25 1020087    1% /run/user/115
tmpfs          1020112     29 1020083    1% /run/user/1000

我对此进行了大量搜索,发现可以使用某些标志来将/usr/bin/sort另一个目录用于临时文件,但是该怎么做呢gtags?我说得对吗?sort在里面调用?还有其他解决方案吗?

答案1

您的/tmp是单独的挂载点,挂载文件系统的大小报告为560M465M可用。显然这对于​​您要做的事情来说还不够。

在我的 Ubuntu 中man 1 gtags描述了该工具使用的环境变量。其中之一是TMPDIR

TMPDIR存储临时文件的位置。默认值为/tmp

一点也不奇怪。来自维基百科

TMPDIR是 Unix 和 POSIX 中的标准环境变量,用于指定暂存空间的临时目录。大多数 Unix 程序都会遵守此设置,并使用其值来表示临时文件的暂存区域,而不是常见的默认值/tmp/var/tmp

下面有足够的空间/home。我假设你的$HOME就在里面/home。在那里创建你自己的临时目录,专门用于gtags

mkdir "$HOME/tmp_gtags"

现在,无论何时你想使用它,你都需要TMPDIR在环境中有适当的变量gtags。有几种方法:

  1. 可以预先设置:

    TMPDIR="$HOME/tmp_gtags"
    export TMPDIR
    

    从现在开始,此 shell 会话中的所有命令(及其后代)都将TMPDIR作为环境的一部分继承(但一般来说,命令可能会改变其环境)。然后您可以运行gtags

    gtags …
    
  2. 或者,您可以仅为一个特定命令指定变量。一般形式为

    variable=value some_command arguments
    

    就你的情况而言:

    TMPDIR="$HOME/tmp_gtags" gtags …
    
  3. 或者你可以使用gtags.conf它。参见man 5 gtags.conf

    您可以将以下环境变量用作字符串变量。如果设置了这些变量,则在命令执行之前会设置同名的环境变量。
    […]
    TMPDIR

    请参阅手册以了解语法。我认为不能使用$HOMEin gtags.conf我只是简单地研究了手册,并没有进行任何测试,所以请您自行研究。现在我相信设置会是这样的

    :TMPDIR=/home/anton/tmp_gtags:
    

请记住,虽然你的操作系统可能一些维护和清理/tmp,维护tmp_gtags是你的工作。

相关内容