Skip to content

使用syspatch为OpenBSD打补丁

从6.1版开始,OpenBSD支持使用二进制文件为系统打补丁,结束了每个补丁要用户自己下载源文件并编译、安装的历史,就像现在所有Linux发行版一样。也算是补上了一个短板。

Read more

如何把一个软件移植到OpenBSD上

这是一篇根据此文意译的文章, 我只翻译了自己认为重要的东西。作者以自己移植python的dnslib库到OpenBSD的过程来描述移植的过程。作者为Bryan Everly。此译文发表时文章发布的原域名过期,无法访问。   事前准备 找到你想移植的软件 准备好承担做一个维护者的责任 和软件的开发者/团队协作,而不是为软件加几个补丁,让它在OB上能编译通过 你很可能没有权限把软件添加到ports中,请和ports邮件列表中的人合作 先读文档,再问问题 OpenBSD ports树传统 软件按类别放在/usr/ports目录下,如开发工具放在/usr/ports/devel,数据库软件放在/usr/ports/database等等 软件源码并不放在/usr/ports的任何目录下,而是在编译时从它的官网下载到/usr/ports/distfiles/PORT-v.v.v子目录下 实际编译时的工作目录在/usr/ports/pobj/PORT-v.v.v下 某个软件的ports包含如下标准的文件: Makefile — 包含编译指令 distinfo — 包含指定软件的验证信息,如tar包的SHA1/SHA256摘要信息 pkg — 子目录 pkg/DESCR — 关于此软件的简短描述,请保持列宽为72 pkg/PLIST — 由此ports编译成的软件包(package)的manifest文件 patches — 子目录,包含要为此软件的源码打的补丁包 大部分ports的Makefile的结尾会包含一个名为bsd.port.mk的文件。这个文件用于告诉ports如何利用OpenBSD现有的ports编译的基础架构。 以移植python库dnslib为例,在/usr/ports/net目录下新建一个文件夹py-dnslib,因为一个跟网络相关的工具,也是python的库文件,所以以py-开头。 接下来要创建Makefile. # $OpenBSD$ COMMENT=…

Read more

SmartOS上更新虚拟机配置

这里以一个SmartOS zone更新IP及网关为例。

用到的命令是vmadm update UUID < json.file。相关配置都需要以json的格式给出,这个我有点不习惯。或许还有其它方式,不过我不了解。

Read more

Triton headnode的状态检查

headnode启动后可以运行sdc-healthcheck命令来查看各个服务的状态。 [root@headnode (masan) ~]# sdc-healthcheck ZONE STATE AGENT STATUS global running – online assets running – online sapi running – online binder running – online manatee running – online moray running – online amonredis running – svc-err redis running -…

Read more

一次SmartDataCenter headnode启动失败的修复

headnode启动时显示: hash mismatch press any key to reboot 重新启动了几次都是如此。即使是rescue模式也是一样。幸好这只是台测试用的机器,如果真的是一个负责整个数据中心的headnode无法启动,那后果简直不堪设想。目前我还没看到headnode有什么容错的方案。 记得上次关机之前运行了sdcadm experimental update-*命令更新过一些东西,或许是这个过程中出了什么问题。 尝试了几种方法,发现把headnode中的config文件备份下来,重新制作一个启动的U盘,然后把config文件再拷贝过去就可以重新启动了,原来的zones貌似都可正常启动。 具体如下: 把headnode启动U盘插入到一台Linux机器,把它根目录下的config文件拷贝出来。如果你的已经无法读取了,那我也没办法。 使用原来下载的img文件重新制作一个启动U盘。 使用此U盘启动headnode机器,使用rescue模式。同样需要在grub中设置os_console参数。 使用root登陆(密码文件在下载img文件的压缩包中) 登陆后设置网络,使此机器可以连通存放config文件的Linux机器。我要使用scp命令来复制。具体可参考SmartOS的网络配置方式。 在headnode机器上,进入到/mnt/usbkey目录中,将config文件复制到此文件夹下 完成后重新启动即可解决上述启动问题。2016/04/30 更新: 再次重启后发现headnode会默认使用PXE方式启动,这样无法启动headnode。修复方法是在headnode自动后,以root登陆,运行/usbkey/scripts/mount-usb.sh 脚本以挂载U盘,然后编辑/mnt/usbkey/boot/grub/menu.lst文件,将“default 0”这行改为“default 1”即可。0对应的就是PXE启动,1对应的就是“Live 64bit”的启动方式。

Read more

smartos上如何安装软件

SmartOS使用NetBSD的pkgsrc来安装软件。 具体方式如下: 安装pkgin工具: 先到 http://pkgsrc.joyent.com/packages/SmartOS/bootstrap/上看看最新的pkgin源码包是什么。如目前最新为bootstrap-2015Q4-x86_64.tar.gz 安装 cd / curl -k http://pkgsrc.joyent.com/packages/SmartOS/bootstrap/bootstrap-2015Q4-x86_64.tar.gz | gzcat | tar -xf – 重新编译软件包数据库 # pkg_admin rebuild 更新pkgin数据库 pkgin -y up 安装软件 pkgin in pkg_name pkgin常用命令列表 Command Description pkgin up Updates the pkgin database. You should run this…

Read more
Sidebar