我今天升级到了 Ubuntu 12.04,当我准备登录到我的 ftp(正在运行 vsftpd)时,出现了一个错误:
必须安装 libgcc_s.so.1 才能使 pthread_cancel 正常工作
我已经升级并更新了所有能找到的东西。不知道哪里出了问题……
这是另一个犯了同样错误的人:http://ubuntuforums.org/showthread.php?t=1937131
没人?!真的需要一些帮助 :(
答案1
截至目前 (10 月 30 日),该错误似乎尚未解决。改用 proftpd。将用户数据库从 vsftpd 迁移到 proftpd 并不困难。
至少我必须这么做才能让我的服务器再次运行(并且尽快)!
答案2
这可能会有效:sudo apt-get install libgcc1-dbg
。
答案3
我遇到了同样的问题,在 Ubuntu 13.10 上运行 vsftpd,所有建议都不起作用。
经过大量的谷歌搜索后,我偶然发现了同样的问题红帽 Bugzilla
他们的解决方案对我很有用:修改源文件 defs.h 后重新编译 vsftpd 包(DEFINE VSFTP_AS_LIMIT 必须更改为值“400UL * 1024 * 1024”)。我不敢说我理解这样做的意义,但现在对我来说一切都很完美。
要重新编译软件包,请按照以下步骤操作(这适用于 Ubuntu 13.10,但对于其他版本应该类似):
- 通过添加以下行将源存储库添加到 /etc/apt/sources.list
deb-src http://archive.ubuntu.com/ubuntu saucy main universe restricted
- 更新软件包列表:
sudo apt-get update
- 安装编译所需的一些实用程序:
sudo apt-get install fakeroot build-essential
- 获取编译 vsftpd 所需的一切:
sudo apt-get build-dep vsftpd
- 获取 vsftpd 源:(
apt-get source vsftpd
非 root 用户可用) - 将文件中的 VSFTP_AS_LIMIT 更改
defs.h
为该值400UL * 1024 * 1024
- 提交更改,否则编译将失败:
dpkg-source --commit
。这将创建一个新的补丁文件。然后系统会提示您输入该帖子的名称和信息。 - 重新构建 vsftpd:。
fakeroot buildpackage
它应该编译,并且应该创建一个新的 .deb 文件。 - 安装这个新创建的包:(
dpkg --install vsftpd_3.0.2-1ubuntu2_amd64.deb
相应地更改文件名)
就是这样,对我有用。最好将该软件包搁置,这样当 Ubuntu 团队发布新的官方软件包时,它就不会被覆盖。
更新:我刚刚在 Ubuntu 12.04 LTS 上尝试过这个,同样有效。
答案4
- 安装:libpam-ldap
您现在会收到此错误:
500 OOPS: vsftpd: refusing to run with writable root inside chroot()
由于 v2.3.4 中的此更新:
- 添加更强大的检查,以检查在 chroot() 中使用可写根目录运行时的配置错误。这可能会给那些粗心地打开 chroot_local_user 的人带来麻烦,但这就是生活。
- 解决方案:
2.1. 删除对根目录的写权限
2.2. 或者降级到旧版本。可以找到 2.3.2这里。