• Freebsd10.2安装包升级pkg引起环境破坏的解决


    前言

    freebsd10.2环境在安装一个新软件包的时候提示升级pkg到1.10.1,然后点击了升级,然后整个pkg环境就无法使用了

    记录

    升级完了软件包以后第一个错误提示

    FreeBSD: /usr/local/lib/libpkg.so.3: Undefined symbol "utimensat"

    这个是因为这个库是在freebsd的10.3当中才有的库,而我的环境是10.2的环境

    网上有一个解决办法

    更新源

    # cat /usr/local/etc/pkg/repos/FreeBSD.conf
    FreeBSD: {
      url: "pkg+http://pkg.FreeBSD.org/${ABI}/release_2",
      enabled: yes
    }
    

    检查当前版本

    # pkg --version
    1.10.1
    

    更新缓存

    # pkg update
    

    卸载

    # pkg delete -f pkg
    

    重新安装

    # pkg install -y pkg
    # pkg2ng
    

    检查版本

    # pkg --version
    1.5.4
    

    这个在我的环境下没有生效

    还有一个办法

    有个pkg-static命令可以使用,,然后/var/cache/pkg里边缓存的包。执行命令:

    # pkg-static install -f /var/cache/pkg/pkg-1.5.4.txz
    

    这个在我的环境下报错

    root@mkiso:/usr/ports/ports-mgmt/pkg # pkg info sqlite3
    pkg: warning: database version 34 is newer than libpkg(3) version 33, but still compatible
    pkg: sqlite error while executing INSERT OR ROLLBACK INTO pkg_search(id, name, origin) VALUES (?1, ?2 || '-' || ?3, ?4); in file pkgdb.c:1544: no such table: pkg_search
    

    这个在网上看到有很多人出现了

    最终解决的办法

    在邮件列表里面看到一个解决办法,我是用的这个办法解决了的

    #pkg shell
    

    进入交互模式,执行下面的操作

    CREATE VIRTUAL TABLE pkg_search USING fts4(id, name, origin);
    pragma user_version=33;
    

    执行完了以后pkg 环境可用了

    避免这个问题

    锁定本机的pkg版本

    pkg lock pkg
    

    如果需要手动找包就是这个路径

    http://pkg.freebsd.org/FreeBSD:10:amd64/
    

    我的机器最终版本是

    #pkg -v
    1.8.7
    

    参考资料

    freebsd pkg升级问题报错
    FreeBSD: /usr/local/lib/libpkg.so.3: Undefined symbol "utimensat"
    升级pkg失败, 安装低版本pkg失败
    pkg database issue: database version 34 is newer than libpkg(3) version 33 ?

    变更记录

    Why Who When
    创建 武汉-运维-磨渣 2017-05-24
  • 相关阅读:
    牛客(4) 重建二叉树
    牛客(3)从尾到头打印链表
    牛客(2)字符串替换
    牛客(1)二分查找
    同义词+序列+视图+临时表
    用户+授权
    控制文件+日志文件
    oracle表的基本操作
    Linux(CentOS6.8)配置Redis
    Linux(CentOS6.8)配置ActiveMQ
  • 原文地址:https://www.cnblogs.com/zphj1987/p/13575428.html
Copyright © 2020-2023  润新知