必须安装 libgcc_s.so.1 才能使 pthread_cancel 正常工作

必须安装 libgcc_s.so.1 才能使 pthread_cancel 正常工作

我今天升级到了 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,但对于其他版本应该类似):

  1. 通过添加以下行将源存储库添加到 /etc/apt/sources.listdeb-src http://archive.ubuntu.com/ubuntu saucy main universe restricted
  2. 更新软件包列表:sudo apt-get update
  3. 安装编译所需的一些实用程序:sudo apt-get install fakeroot build-essential
  4. 获取编译 vsftpd 所需的一切:sudo apt-get build-dep vsftpd
  5. 获取 vsftpd 源:(apt-get source vsftpd非 root 用户可用)
  6. 将文件中的 VSFTP_AS_LIMIT 更改defs.h为该值400UL * 1024 * 1024
  7. 提交更改,否则编译将失败:dpkg-source --commit。这将创建一个新的补丁文件。然后系统会提示您输入该帖子的名称和信息。
  8. 重新构建 vsftpd:。fakeroot buildpackage它应该编译,并且应该创建一个新的 .deb 文件。
  9. 安装这个新创建的包:(dpkg --install vsftpd_3.0.2-1ubuntu2_amd64.deb相应地更改文件名)

就是这样,对我有用。最好将该软件包搁置,这样当 Ubuntu 团队发布新的官方软件包时,它就不会被覆盖。

更新:我刚刚在 Ubuntu 12.04 LTS 上尝试过这个,同样有效。

答案4

  1. 安装:libpam-ldap
    您现在会收到此错误:
    500 OOPS: vsftpd: refusing to run with writable root inside chroot()

由于 v2.3.4 中的此更新:

  • 添加更强大的检查,以检查在 chroot() 中使用可写根目录运行时的配置错误。这可能会给那些粗心地打开 chroot_local_user 的人带来麻烦,但这就是生活。
  1. 解决方案:
    2.1. 删除对根目录的写权限
    2.2. 或者降级到旧版本。可以找到 2.3.2这里

相关内容