最近使用 AIX 7.1 从 Bitbucket 下载代码的时候遇到了这个错误:
fatal: write error: A file cannot be larger than the value set by ulimit.
$ git clone -b dev https://<username>:<password>@git.company.com/scm/vmcc/opensrc.git --depth 1 |
在 AIX 7.3 我遇到的是这个错误:
fatal: fetch-pack: invalid index-pack output
$ git clone -b dev https://<username>:<password>@git.company.com/scm/vmcc/opensrc.git --depth 1 |
这是由于这个仓库里的文件太大,超过了 AIX 对于用户文件资源使用的上限。
通过 ulimit -a
可以来查看。更多关于 ulimit
命令的使用 ulimit Command
$ ulimit -a |
可以看到 file 有一个上限值 2097151。如果将它也改成 unlimited 应该就好了。
通过 root 用户可以访问到 limits 文件 /etc/security/limits
(普通用户没权限访问)。
# 以下是这个文件里的部分内容 |
将上述的值 fsize = 2097151 改成 fsize = -1 就将解除了文件块大小的限制了。修改完成后,重新登录来让这次修改生效。
再次执行 ulimit -a
,已经生效了。
$ ulimit -a |
此时 file(blocks) 已经变成 unlimited 了。再次尝试 git clone
git clone -b dev https://<username>:<password>@git.company.com/scm/vmcc/opensrc.git --depth 1 |
这次就成功了!