我的站点

一个系统软件工程师的随手涂鸦

Tag: illumos

SmartOS上使用pkgin安装软件

我使用的SmartOS是安装在Vmware上的虚拟机,网络模式是NAT。装好的SmartOS缺少很多常用软件,需要自行安装:

(1)由于我的网络使用了proxy,所以需要配置一下:

export http_proxy="http://web-proxy.xxxxxx.com:8080/"
export https_proxy="https://web-proxy.xxxxxx.com:8080/"

(2)安装pkgin,我使用的是root用户:

# cd /
# curl -k http://pkgsrc.joyent.com/packages/SmartOS/bootstrap/bootstrap-2015Q4-x86_64.tar.gz | gzcat | tar -xf -
# pkg_admin rebuild
# pkgin -y up

(3)接下来就可以安装软件了,以gcc为例。首先查找gcc package

# pkgin se gcc
......
gcc49-4.9.3          The GNU Compiler Collection (GCC) - 4.9 Release Series
......

安装gcc

# pkgin in gcc49-4.9.3

安装好后就可以使用了:

# gcc
gcc: fatal error: no input files
compilation terminated.

参考资料:
Installing pkgin
Working with packages

你用对awk了吗?

今天折腾OmniOS上的awk,结果发现很简单的一个程序居然执行出错:

root@localhost:/root# awk 'function print_name_and_age(name, age) { print name" is "age" old" } {print_name_and_age($1, $2)}'
awk: syntax error near line 1
awk: bailing out near line 1

而相同的程序在gawk下运行的好好的。求助stackoverflow,得到结论如下:

(1)OmniOS上有nawk/usr/bin/awk(默认的awk)和/usr/xpg4/bin/awk。建议使用nawk/usr/bin/awk是老版本的awk,很多feature都不支持(基于illumos内核的操作系统,包括Solaris可能都需要注意这个问题)。
(2)“bailing out”是老版本awk的输出日志。所以一旦有这样的日志输出,需要考虑一下是不是使用的awk版本有问题。

Powered by WordPress & Theme by Anders Norén