apr 16
今天在 Mac 下配置一个 Go Lang 的开发环境,我是使用 /bin/csh 作为默认 shell(爱上了其强大的历史命令回溯功能),所以需要将 $GOPATH 设置到 ~/.cshrc 文件里:
setenv GOPATH /export/projects/mygo
set path = ($path $GOPATH/bin)
设置后发现不能自动加载,即使重新启动系统也无效。每次需要手动 "source ~/.cshrc" 才能生效。
经过不断摸索和研究,发现这是由于我的 Home 目录下存在 .tcshrc 文件引起的问题。tcsh(MacOS 下的 csh 与 tcsh 相同)在登录、开启终端时会依照以下顺序读取配置文件:
- /etc/csh.cshrc : Read first by every shell.
- /etc/csh.login : Read by login shells after /etc/csh.cshrc.
- ~/.tcshrc : Read by every shell after /etc/csh.cshrc.
- ~/.cshrc : Read by every shell, if ~/.tcshrc doesn't exist.
- ~/.history : Read by login shells after ~/.tcshrc if savehist is set, but see also histfile.
- ~/.login : Read by login shells after ~/.tcshrc or ~/.history.
找到问题所在,将 ~/.tcshrc 文件移除即可(该文件是 Macports 自动安装,无实际设置)。
nov 05
我的 Mac OS X 系统里的 PostgreSQL 数据库是通过 MacPorts 安装的,默认配置容量非常小,只适合一般的小数据量试验之用,即使开发环境的数据增加到几万条,速度就明显慢了。
在 Mac OS X 下调整 PostgreSQL 的性能,需要做以下步骤:
1、调整postgresql.conf文件中参数,设置为你认为合理或者期望的数值。比如我会提高共享缓存数量到 128MB,并增大 work_mem 和 sort_mem 参数。调整完后,不出意外, PostgreSQL 服务将无法启动,查看其日志(注意,macports 安装的 PostgreSQL 的日志位于:/opt/local/var/log/postgresql83/postgres.log),报:
FATAL: could not create shared memory segment: Cannot allocate memory
DETAIL: Failed system call was shmget(key=5432001, size=139018240, 03600).
HINT: This error usually means that PostgreSQL's request for a shared \
memory segment exceeded available memory or swap space. To reduce the \
request size (currently 139018240 bytes), reduce PostgreSQL's shared_buffers \
parameter (currently 16384) and/or its max_connections parameter (currently 23).
The PostgreSQL documentation contains more information about shared \
memory configuration.
这是系统信号量不够,根据 PostgreSQL 官方网站文档 ,需要进行系统参数调整。
2、利用 sysctl 调整 kernel.sysv.* 相关参数。
先利用以下命令行测试可行的数量级别:
sysctl -w kern.sysv.shmall=327680
sysctl -w kern.sysv.shmmax=536870912
不断调整,不断尝试启动 PostgreSQL 服务,直到能正常启动。
3、最后将理想的 kern.sysv.* 相关参数写到 /etc/sysctl.conf 文件中,让系统启动的时候自动生效:
more /etc/sysctl.conf
kern.sysv.shmall=327680
kern.sysv.shmmax=536870912
调整完毕后,速度有明显提升。不过说实话,感觉没有 Ubuntu 桌面系统下高,也许有更多地方需要调整,有时间的时候好好研究一下。
aug 28
Mac OS X 下可以方便的使用 MacPorts 安装你想要的 Unix 相关工具或者软件,间隔一段时间之后,可能会涉及到更新升级的问题, MacPorts 提供非常方便的方法。
(MacPorts 的安装非常简单,到 MacPorts 官方网站下载对应版本运行安装即可。)
第一步,需要将 MacPorts 本身更新到最新版本:
sudo port selfupdate
或者开启 debug 功能,看完整更新信息:
sudo port -d selfupdate
第二步,更新所有过期(ports 中有新版本)的软件到最新版本:
sudo port -u upgrade outdated
此处的 -u 参数的作用:upgrade 选项默认只是在安装新版本后 deactivates 旧版本,并不会删除,这个 -u 就是告诉 port 安装新版本后,将不再需要的旧版本删除掉;便于保持干净的系统。
更详细的命令参数可以参考 MacPorts Guide 。
Recent Comments