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

栏目: 服务器 · 发布时间: 9年前

内容简介:Freebsd10.2安装包升级pkg引起环境破坏的解决
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
``` 

这个在我的环境下报错
```bash
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

参考资料

变更记录

Why Who When
创建 武汉-运维-磨渣 2017-05-24

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Distributed Algorithms

Distributed Algorithms

Wan Fokkink / The MIT Press / 2013-12-6 / USD 40.00

This book offers students and researchers a guide to distributed algorithms that emphasizes examples and exercises rather than the intricacies of mathematical models. It avoids mathematical argumentat......一起来看看 《Distributed Algorithms》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

随机密码生成器
随机密码生成器

多种字符组合密码

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换