CUPSインストーラの中身を見てみます。
ibg4:~/Desktop/cups.pkg/Contents kenz$ ls
Archive.bom Archive.pax.gz Info.plist PkgInfo Resources
ibg4:~/Desktop/cups.pkg/Contents kenz$ tree
.
|-- Archive.bom
|-- Archive.pax.gz
|-- Info.plist
|-- PkgInfo
`-- Resources
|-- BundleVersions.plist
|-- English.lproj
| |-- Description.plist
| `-- cups.info
|-- ReadMe.rtf
|-- Welcome.rtf
|-- background.tif
|-- cups.bom -> ../Archive.bom
|-- cups.pax.gz -> ../Archive.pax.gz
|-- cups.sizes
|-- package_version
|-- postflight
`-- preflight
2 directories, 16 files
ibg4:~/Desktop/cups.pkg/Contents kenz$ cat Resources/postflight
#!/bin/sh
# Remove old startup item, we use launchd now...
rm -f /System/Library/StartupItems/PrintingServices/PrintingServices
# Tell launchd to reload cupsd...
launchctl unload /System/Library/LaunchDaemons/org.cups.cupsd.plist || exit 0
launchctl load /System/Library/LaunchDaemons/org.cups.cupsd.plist
ibg4:~/Desktop/cups.pkg/Contents kenz$ cat Resources/preflight
#!/bin/sh
# Stop any running cupsd processes...
killall cupsd || exit 0
ibg4:~/Desktop/cups.pkg/Contents kenz$
CUPSの再起動を launchd でやっているけど、launchd って、MacOSX 10.4(Tiger) からじゃなかったっけ?
Archive.pax.gz を、引き出して、何をインストールするか見てみます。
ibg4:~ kenz$ pwd
/Users/kenz
ibg4:~ kenz$ mkdir cups
ibg4:~ kenz$ cp ./Desktop/cups.pkg/Contents/Archive.pax.gz cups
ibg4:~ kenz$ cd cups/
ibg4:~/cups kenz$ ls
Archive.pax.gz
ibg4:~/cups kenz$ gunzip -dc Archive.pax.gz > Archive.pax
ibg4:~/cups kenz$ pax -r -f Archive.pax
ibg4:~/cups kenz$ rm -f Archive.pax*
ibg4:~/cups kenz$ ls
System private usr
ibg4:~/cups kenz$
ibg4:~/cups kenz$ tree > ../tree.txt
ibg4:~/cups kenz$
で、tree を見る。
.
|-- System
| `-- Library
| `-- LaunchDaemons
| `-- org.cups.cupsd.plist
|-- private
| |-- etc
| | |-- cups
| | | |-- cupsd.conf
| | | |-- cupsd.conf.default
| | | |-- interfaces
| | | |-- mime.convs
| | | |-- mime.types
| | | `-- ppd
| | |-- pam.d
| | | `-- cups
| | `-- xinetd.d
| | `-- cups-lpd
| `-- var
| |-- log
| | `-- cups
| |-- run
| | `-- cups
| | `-- certs
| |-- spool
| | `-- cups
| | `-- tmp
| `-- tmp
| `-- cups
`-- usr
|-- bin
| |-- cancel
| |-- cups-config
| |-- cupstestdsc
| |-- cupstestppd
| |-- lp
| |-- lpoptions
| |-- lppasswd
| |-- lpq
| |-- lpr
| |-- lprm
| `-- lpstat
|-- include
| `-- cups
省略
|-- lib
| |-- libcups.2.dylib
| |-- libcups.a
| |-- libcups.dylib -> libcups.2.dylib
| |-- libcupsimage.2.dylib
| |-- libcupsimage.a
| |-- libcupsimage.dylib -> libcupsimage.2.dylib
| `-- php
| `-- extensions
| `-- no-debug-non-zts-20020429
| `-- phpcups.so
|-- libexec
| `-- cups
| |-- backend
| | |-- http -> ipp
| | |-- ipp
| | |-- lpd
| | |-- pap
| | |-- parallel
| | |-- scsi
| | |-- serial
| | |-- snmp
| | |-- socket
| | `-- usb
| |-- cgi-bin
| | |-- admin.cgi
| | |-- classes.cgi
| | |-- help.cgi
| | |-- jobs.cgi
| | `-- printers.cgi
| |-- daemon
| | |-- cups-deviced
| | |-- cups-driverd
| | |-- cups-lpd
| | `-- cups-polld
| |-- driver
| |-- filter
| | |-- gziptoany
| | |-- hpgltops
| | |-- pstops
| | |-- rastertodymo -> rastertolabel
| | |-- rastertoepson
| | |-- rastertohp
| | |-- rastertolabel
| | `-- texttops
| |-- monitor
| | |-- bcp
| | `-- tbcp
| `-- notifier
| |-- mailto
| `-- testnotify
|-- sbin
| |-- accept
| |-- cupsaddsmb
| |-- cupsd
| |-- cupsdisable -> accept
| |-- cupsenable -> accept
| |-- lpadmin
| |-- lpc
| |-- lpinfo
| |-- lpmove
| `-- reject -> accept
`-- share
|-- cups
| |-- banners
省略
| |-- charmaps
省略
| |-- charsets
省略
| |-- data
省略
| |-- fonts
省略
| |-- model
| | |-- deskjet.ppd
| | |-- deskjet2.ppd
| | |-- dymo.ppd
| | |-- epson24.ppd
| | |-- epson9.ppd
| | |-- laserjet.ppd
| | |-- okidat24.ppd
| | |-- okidata9.ppd
| | |-- stcolor.ppd
| | |-- stcolor2.ppd
| | |-- stphoto.ppd
| | |-- stphoto2.ppd
| | |-- zebra.ppd
| | |-- zebraep1.ppd
| | `-- zebraep2.ppd
| |-- profiles
| `-- templates
省略
| |-- es
省略
|-- doc
| `-- cups
省略
|-- locale
省略
`-- man
省略
75 directories, 862 files
Windowsから、IPP , LPR , RAW で印刷してみます。
共通な設定として以下をやります。
この状態で、Windows2000からIPP印刷可能です。
次に、LPR印刷。
cups-lpd は、MacOSX 10.4 から LaunchDaemons で動かしているのですが、
CUPS 1.2.1 は、xinetd から動かすようになっているようです。なので、
xinetd の cups-lpd を止めて、LaunchDaemons から動くようにします。
ibg4:/etc/cups kenz$ cd /System/Library/LaunchDaemons/
ibg4:/System/Library/LaunchDaemons kenz$ ls
bootps.plist finger.plist
com.apple.KernelEventAgent.plist ftp.plist
com.apple.atrun.plist login.plist
com.apple.mDNSResponder.plist nmbd.plist
com.apple.nibindd.plist ntalk.plist
com.apple.periodic-daily.plist org.cups.cupsd.plist
com.apple.periodic-monthly.plist org.isc.named.plist
com.apple.periodic-weekly.plist org.postfix.master.plist
com.apple.portmap.plist org.xinetd.xinetd.plist
com.apple.syslogd.plist printer.plist
com.apple.xgridagentd.plist shell.plist
com.apple.xgridcontrollerd.plist smbd.plist
com.vix.cron.plist ssh.plist
comsat.plist swat.plist
eppc.plist telnet.plist
exec.plist tftp.plist
ibg4:/System/Library/LaunchDaemons kenz$
ibg4:/System/Library/LaunchDaemons kenz$ sudo launchctl list
com.apple.KernelEventAgent
com.apple.mDNSResponder
com.apple.nibindd
com.apple.periodic-daily
com.apple.periodic-monthly
com.apple.periodic-weekly
com.apple.portmap
com.apple.syslogd
com.vix.cron
org.postfix.master
org.xinetd.xinetd
org.cups.cupsd
ibg4:/System/Library/LaunchDaemons kenz$
LaunchDaemons に printer.plist はありますが、動いていません。
代わりに、xinetd の方が有効になっています。
xinetd の cups-lpd を削除します。
ibg4:/etc/cups kenz$ cd /etc/xinetd.d/
ibg4:/etc/xinetd.d kenz$ ls -la
total 8
drwxr-xr-x 3 root wheel 102 Jun 18 09:53 .
drwxr-xr-x 85 root wheel 2890 Jun 18 09:16 ..
-rw-r--r-- 1 root wheel 206 May 23 04:17 cups-lpd
ibg4:/etc/xinetd.d kenz$
ibg4:/etc/xinetd.d kenz$ sudo rm -f cups-lpd
ibg4:/etc/xinetd.d kenz$ ls
ibg4:/etc/xinetd.d kenz$
ibg4:/etc/xinetd.d kenz$ ps -ax | grep xinet
344 ?? Ss 0:00.04 xinetd -dontfork -stayalive -inetd_compat -pidfile /va
525 p1 R+ 0:00.01 grep xinet
ibg4:/etc/xinetd.d kenz$ sudo kill -HUP 344
これで xinetd からの cups-lpd が止まります。
次に LaunchDaemons の方を起動させます。
ibg4:/System/Library/LaunchDaemons kenz$ sudo launchctl load -w /System/Library/LaunchDaemons/printer.plist
ibg4:/System/Library/LaunchDaemons kenz$ sudo launchctl listcom.apple.KernelEventAgent
com.apple.mDNSResponder
com.apple.nibindd
com.apple.periodic-daily
com.apple.periodic-monthly
com.apple.periodic-weekly
com.apple.portmap
com.apple.syslogd
com.vix.cron
org.postfix.master
org.xinetd.xinetd
org.cups.cupsd
com.apple.cups-lpd
ibg4:/System/Library/LaunchDaemons kenz$
これで 515/TCP が開きます。いづれかのプリンタがデフォルトのプリンタになっていないと印刷できません。
同じように、RAW(JetDirect) も設定します。
ibg4:/System/Library/LaunchDaemons kenz$ cat jetdirect.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Disabled</key>
<true/>
<key>Label</key>
<string>com.apple.jetdirect</string>
<key>Program</key>
<string>/usr/bin/lpr</string>
<key>ProgramArguments</key>
<array>
<string>lpr</string>
</array>
<key>Sockets</key>
<dict>
<key>Listeners</key>
<dict>
<key>SockServiceName</key>
<integer>9100</integer>
<key>SockType</key>
<string>stream</string>
</dict>
</dict>
<key>inetdCompatibility</key>
<dict>
<key>Wait</key>
<false/>
</dict>
</dict>
</plist>
ibg4:/System/Library/LaunchDaemons kenz$
ibg4:/System/Library/LaunchDaemons kenz$ sudo launchctl load -w /System/Library/LaunchDaemons/jetdirect.plist
ibg4:/System/Library/LaunchDaemons kenz$ sudo launchctl list | grep -i jetdirect
com.apple.jetdirect
ibg4:/System/Library/LaunchDaemons kenz$
これで、RAW印刷できます。