2007年8月2日
Feisty下,由于CUPS项目以及foo2zjs的帮主,惠普Laserjet 1xxx这类打印机是可以很好地即插即用的。但是当关闭打印机电源后重开的时候也许情况不是那么好了,用户会发现打印队列里的东西永远也到不了打印机。
为什么会这样呢?因为Laserjet 1000需要加载驱动程序附带的firmware才能初始化,在windows下,这是自动的。Feisty(7.04)已经修正了自动加载(bug
#65618),但由于版权原因系统没有带改firmware。用户可以通过foo2zjs自带的程序抓取之。
执
行 $getweb 1000 后,将会自动从internet下载sihp1000.img,然后再执行 $sudo arm2hpdl
sihp1000.img /usr/share/foo2zjs/firmware/sihp1000.dl
则将该文件放置到foozjs指定目录下,这样一来每次插入Laserjet1000时,系统会自动从该处加载这个firmware,相当于自动执行了
cat /usr/share/foo2zjs/firmware/sihp1000.dl /dev/lp*。
完成后可关闭并重新启动打印机,滚轮将会转动两次,并且信号灯跳越后停在绿灯上表示工作就绪,此时即可直接打印了。
受朋友之托,看看MAYA 8.0 for Linux在Ubuntu上安装和运行中有一些什么问题。在实验了几次之后,确实发现了一些问题,搜索和尝试解决之后,总结如下:
1. 安装CSH,Maya的脚本是csh的,而Ubuntu默认没有安装。
2. 必须安装的三个包为:awcommon awcommon-server和maya8
3. RPM- for linux的安装包是为RPM格式的,最好用alien转换成deb安装。转换时强烈推荐用"--scripts"参数(alien --scrpits xxx.rpm)。
4. 转换完安装之前先在根目录下做一名为aw的个符号链接: ln -s /usr/aw /aw,没有相应目录则开一个空的(否则安装的时候可能会有错误)。
5. dpkg 安装所有三个转换后的deb打包。
6. 在/usr下建立tmp目录,给予写权限,否则mentalray渲染器在render时可能会出错。
7. 如果Maya默认启动后会有使用右键鼠标光标跳回X窗口系统原始默认的大叉形状而不是窗口管理器指定的光标。这个可以修改maya的启动脚本文件加以解决,
方法是在/usr/aw/maya8.0/bin/maya中加入环境变量MAYA_MMSET_DEFAULT_XCURSOR。一定要用
"setenv MAYA_MMSET_DEFAULT_XCURSOR 1" 而不是"export
MAYA_MMSET_DEFAULT_XCURSOR 1",因为export是bash的语法,而Maya写的是csh脚本所以不吃bash那套。
8. 修改默认的界面使用的字体和UI调色盘可以通过修改/usr/aw/maya8.0/app-defaults/MayaScheme来实现,在这里配置自己喜欢的字体族和颜色方案。
附带Cobra在chinaVFX上post的深色UI及字体调教后的MayaScheme内容(Thx buddy!):
*extraLargeBoldLabelFont: -*-helvetica-bold-r-normal-*-17-*-*-*-*-*-iso8859-1
*largeBoldLabelFont: -*-helvetica-bold-r-normal-*-14-*-*-*-*-*-iso8859-1
*boldLabelFont: -*-clearbold-medium-r-*-*-12-*-*-*-*-*-*-*
!!*boldLabelFont: -*-helvetica-bold-r-normal-*-12-*-*-*-*-*-iso8859-1
!!*smallBoldLabelFont: -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-iso8859-1
*smallBoldLabelFont: -*-clearbit-bold-r-normal-*-12-*-*-*-*-*-iso8859-1
*tinyBoldLabelFont: -*-helvetica-bold-r-normal-*-10-*-*-*-*-*-iso8859-1
!!*plainLabelFont: -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-iso8859-1
*plainLabelFont: -*-clearbit-medium-r-normal-*-12-*-*-*-*-*-iso8859-1
*smallPlainLabelFont: -*-lucida-medium-r-normal-*-10-*-*-*-*-*-iso8859-1
*obliqueLabelFont: -*-helvetica-bold-o-normal-*-12-*-*-*-*-*-iso8859-1
*smallObliqueLabelFont: -*-helvetica-bold-o-normal-*-10-*-*-*-*-*-iso8859-1
*fixedWidthFont: -*-fixed-medium-r-normal--13-*-*-*-*-*-iso8859-1
*smallFixedWidthFont: -*-lucida-medium-r-*-*-12-*-*-*-*-*-*-*
*XmLabel.fontList: -*-lucida-medium-r-*-*-10-*-*-*-*-*-*-*
*bottomShadowColor: #303030
*topShadowColor: #585858
*basicForeground: #e0e0e0
*basicBackground: #404040
*Maya*background: #404040
*Maya.background: #808080
*XmForm*background: #404040
*XmLabel*background: #404040
*ApplicationShell*background: #404040
*XmRowColumn*background: #404040
*XmMainWindow*background: #404040
*XmCascadeButton*background: #404040
*XmButton*background: #404040
*XmDrawingArea*background: #404040
*XmFrame*background: #404040
*XmTextField.background: #404040
*Maya*foreground: #e0e0e0
*Maya.foreground: #f0f0f0
!!same effect
*Maya.outlinerPanel1.outlinerPanel1.TearOffPane.TopLevelPanelLayout.outlinerForm.outlinerPane.outlinerPanel1.hScroll.height: 20
*Maya*ApplicationShell*XmMainWindow*XmForm*XmMainWindow*XmForm*XmForm*XmForm*XmScrollBar*height: 20
*Maya*ApplicationShell*XmMainWindow*XmForm*XmMainWindow*XmForm*XmForm*outlinerPanel1.hScroll.height: 20
*Maya.MainWindow.MainWindow.ELFdefaultFormLayout.ELFdefaultFormLayout.ELFdefaultFormLayout.ELFdefaultFormLayout.ELFdefaultFormLayout.ELFdefaultFrameLayout.topShadowColor:#303030
*Maya.MainWindow.MainWindow.ELFdefaultFormLayout.ELFdefaultFormLayout.ELFdefaultFormLayout.ELFdefaultFormLayout.ELFdefaultFormLayout.ELFdefaultFrameLayout.bottomShadowColor:#585858
*Maya.MainWindow.MainWindow.ELFdefaultFormLayout.ELFdefaultFormLayout.ELFdefaultFormLayout.ELFdefaultFormLayout.ELFdefaultFrameLayout.topShadowColor:#303030
*Maya.MainWindow.MainWindow.ELFdefaultFormLayout.ELFdefaultFormLayout.ELFdefaultFormLayout.ELFdefaultFormLayout.ELFdefaultFrameLayout.bottomShadowColor:#585858
*Maya*XmText*topShadowColor: #303030
*Maya*XmText*bottomShadowColor: #585858
!!*Maya*XmForm*XmScrollBar*background: #939181
!!*Maya*XmForm*XmPushButton*background: #f4f2e4
!!*Maya*TransientShell*XmRowColumn*background: #e7dff1
*textForeground: #c0c0c0
*textFieldBackground: #6d566d
*readOnlyBackground: #464f44
*buttonBackground: #b7bbae
*scrollBarTroughColor: #b7bbae
*scrollBarControlBackground: #b7bbae
*indicatorBackground: #cbcbcb
*radioColor: #726c5b
*checkColor: #ff0000
*blueSelectBackgroundColor1: #3d5366
*blueSelectBackgroundColor2: #849dae
*drawingAreaBackground: #5d647c
*drawingAreaContrastColor1: #b04b4b
*drawingAreaContrastColor2: #4e3aa4
*drawingAreaContrastColor3: #008700
*drawingAreaContrastColor4: #7d3ca5
*scrolledListBackground: #6d6d6d
*textBackground: #585858
*highlightColor1: #ff0000
*highlightColor2: #0000ff
*highlightColor3: #00ff00
*highlightColor4: #a01ef0
*highlightColor5: #ffa500
*highlightColor6: #00ffff
*highlightColor7: #ff00ff
*HighlightColor8: #ffff00
*wMBackground: #aaaaaa
*wMForeground: #000000
*wMActiveBackground: #c6c1aa
*wMActiveForeground: #000000
*textSelectedBackground: #909070
*textSelectedForeground: #201020
*indicatorLightColor: #ffff00
*selectFillColor: #ffff00
*redColor: #ef001c
*orangeColor: #e46800
*yellowColor: #d9b000
*greenColor: #169612
*blueColor: #3063a2
*brownColor: #924c39
*purpleColor: #924f95
*errorColor: #c60000
*warningColor: #0067a8
*informationColor: #00ff00
*alternateBackground1: #c1adad
*alternateBackground2: #a7b7a7
*alternateBackground3: #bbbbcd
*alternateBackground4: #9fbfbf
*alternateBackground5: #87aaca
*alternateBackground6: #d1d1c9
*disabledTextForeground: #aaaaaa
*layerAdjustmentTextForeground: #e56929
*lightRadioFillColor: #9e9edc
*disabledCheckColor: #dc9e9e
有一些不怎么友好的deb软件包可能由于某种原因(比如转换不完全成功)安装到一半失败,而想卸载却又卸不掉。无论用什么apt或者dpkg的命令都无法起作用时,用
户可能会很着慌,以至于要备份并重新安装整个系统。这时先不要急,因为一般性的情况下,并不是整个包管理系统真的损坏了,而只是因为一些情况在包管理系统
的意料之外而拒绝读取索引。只要手动从dpkg的索引文件和相关目录删除这些软件的信息/文件即可让包管理系统恢复正常。
对于deb系统而言,其实安装软件包不外乎把软件解压缩到指定的目录下去,然后运行设定脚本去读取一些环境变量来生成
一些配置文件。完了之后dpkg会把安装结果和软件包状态的变化记录到索引文件中去(apt也一样,因为它在安装软件包时其实是调用了dpkg)。所以我
们手动删除这些信息之后就和没安装过他们一模一样。要手动删除一个软件包,要做的就是:
1.找出软件包安装的文件的列表,一一删除之。
2.在索引文件中找到这些软件包的信息并删除之。
3.重建索软件包集合信息。
如果要求不高,只希望包关系系统恢复工作的话,只需要2和3就够了。用不着的文件暂时放一放也无妨(前提是不会对系统安全性产生威胁)。对应的信息获取地点和操作地点:
1.软件包的文件列表,在包内,只要deb还在(一般通过apt缓存的包放在/var/cache/apt/archives),用dpkg -c XXX.deb就可以得到。
2.索引信息,一般在/var/lib/dpkg/status,文本文件,结构简单清楚;另外/var/lib/dpkg/info下有每个安装过的包的信息文件信息(和MD5校验),一组3-4个文件,以软件包命名,后缀为list、md5等等,酌情删除。
3.apt-get update
上
面3条不能保证100%删除所有软件包残留信息,只是能够尽快让apt/dpkg恢复工作。一些注册信息比如向gconf注册schema需要额外步骤来
注销,也许比较省力的方法就是设法找一个更新后或者版本兼容的deb替代安装,如此就能覆盖掉以前的信息,再删除就清除了所有的残留。