由于用了大概半年左右的cygwin,把使用过程中遇到的问题和解决方法整理记录下。

cygwin 包管理工具

cygwin有一个软件管理工具apt-cyg 类似于debian的apt-get,有了这个就方便多了。

安装:

lynx -source rawgit.com/transcode-open/apt-cyg/master/apt-cyg > apt-cyg
install apt-cyg /bin

使用:

apt-cyg install nano

可用操作:

命令 说明
apt-cyg remove 删除
apt-cyg update 升级
apt-cyg depends 某软件的依赖的列表
apt-cyg rdepends 依赖某软件的列表
apt-cyg list 列出本地软件
apt-cyg listall 列出本地和远程软件
apt-cyg show 某软件信息
apt-cyg category 列出某类软件列表
apt-cyg search 搜寻本地软件
apt-cyg seacrchall 搜寻本地和远程软件

【转】cygwin 伺服模式

cygserver 服务器,用于运行大型的应用。Cygwin有一些特殊的功能, 如IPC Message Queues(消息队列), XSI IPC Semaphores, XSI IPC Shared Memory(共享内存),默认是没有打开的,要想使用这些功能, 必须先启动cygserver程序或服务。

启用的方法如下:终端执行:

cygserver-config # 按照提示配置
net start cygserver #cygserver作为Windows操作系统的一个服务运行
net stop cygserver #停止cygserver, 也可以在Windows任务管理器里结束进程

在$CYGWIN/Cygwin.bat里添加下面的配置:

$set CYGWIN=server

当然你也可以在每次需要的时候手动启动:

cygwinserver &

或者在 ~/.bashrc 添加如下内容(或者在windows环境变量里面配置)

CYGWIN=server
export CYGWIN

执行

. ~/.bashrc  #让其生效。
cygserver-config
net start cygserver

cygwin崩溃信息收集

在缺省的 cygwin 环境下出错时并不产生 core 文件,而是产生一个stackdump文件,该文件所含信息比core文件少,不能当作core文件使用,为了产生真正的core文件,可以配置好下面的环境变量:

set CYGWIN="$CYGWIN error_start=dumper.exe -d %1 %2"(在d:\cygwin\Cygwin.bat文件里)

或者:

export CYGWIN="$CYGWIN error_start=dumper.exe -d %1 %2"(在.bashrc文件里)

coredump时, cygwin会调用dumper.exe程序在当前目录下产生core文件. 但是不要对这个core文件抱太大的指望. 根据我的经验, 很多时候用bt列出的调用栈都是不可用的. 我也不知道为什么. 全局变量好像可以查看.

字体设定

cygwin使用windows的字体:默认不使用win的字体,下面命令把win字体软链到cygwin环境下,然后刷新字体缓存(给cygwin安装新字体也需要步骤),最后列出字体看看是不是已经加进来了。

ln -s /cygdrive/c/Windows/Fonts /usr/share/fonts/win-fonts
fc-cache
fc-list

mintty的字体:???

读取本地分区

cygwin如何读取本地分区?在cygdrive里,有本地分区的连接。

配置好的cygwin:babun

如果自己配置觉得麻烦(其实也没啥需要配置的),可以使用已经配置好cygwin的 Babun ,其中有些功能,比如:

Babun的安装也非常简单,从它的主页下载压缩包,解压,双击执行install.bat。

但是:在win7 babun下,emacs图形界面版有问题!!!