UbuntuHelp:NetwarePrintingFromUbuntu
来自Ubuntu中文
点击翻译: |
English |
请不要直接编辑翻译本页,本页将定期与来源同步。 |
目录
Introduction
This page covers only how to install a Netware Printer Queue in Ubuntu.
What is Needed
perl - Larry Wall's Practical Extraction and Report Language, needed for ncp script.
ipx - utilities to configure the kernel ipx interface.
ncpfs - a set of utilities to use resources from NetWare servers, in particular nprint to print to a netware printer queue.
kdeprint - print system for KDE, this is a very nice tool.
NCP script
Create the script /usr/lib/cups/backend/ncp
use strict; my $NPRINT = "nprint"; my $NCP_HOME = "/root"; if (scalar(@ARGV) == 0) { print "network ncp \"Unknown\" \"NetWare Printer via NCP\"\n"; exit 0; } if (scalar(@ARGV) < 5 || scalar(@ARGV) > 6) { print STDERR "ERROR: ncp job user title copies options [filename]\n"; exit 1; } my ($job, $user, $title, $copies, $options, $file) = @ARGV; my $printer = $ENV{"DEVICE_URI"}; my ($server, $queue, $nwuser, $nwpass); for ($printer) { # ncp://USERNAME:PASSWORD@SERVER/QUEUE m|^ncp://(.+):(.*)@(.+)/(.+)| && do { $nwuser = $1; $nwpass = $2; $server = $3; $queue = $4; last; }; # ncp://USERNAME@SERVER/QUEUE m|^ncp://(.+)@(.+)/(.+)| && do { $nwuser = $1; $server = $2; $queue = $3; last; }; # ncp://SERVER/QUEUE m|^ncp://(.+)/(.+)| && do { $server = $1; $queue = $2; last; }; } if (not defined $server or not defined $queue) { print STDERR "ERROR: malformed printer URI\n"; exit 1; } $nwuser =~ s/%([a-fA-F0-9]{2})/chr(hex($1))/ge if defined $nwuser; $nwpass =~ s/%([a-fA-F0-9]{2})/chr(hex($1))/ge if defined $nwpass; $server =~ s/%([a-fA-F0-9]{2})/chr(hex($1))/ge if defined $server; $queue =~ s/%([a-fA-F0-9]{2})/chr(hex($1))/ge if defined $queue; my @command = ($NPRINT, "-S", $server, "-q", $queue, "-N"); if (defined $nwuser) { push @command, "-U"; push @command, $nwuser; } if (defined $nwpass) { push @command, "-P"; push @command, $nwpass; } if (defined $file) { if ($file =~ /^-/) { # Avoid file names which look like switches $file = "./$file"; } push @command, $file; } else { push @command, "-"; } $ENV{"HOME"} = $NCP_HOME; my $result = system { $command[0] } @command; if ($result != 0) { print STDERR "ERROR: nprint exited with status $result\n"; exit 1; } exit 0;
Restart CUPS
After changing this file, restart CUPS by running ...
sudo /etc/init.d/cupsys restart
or use the Services tool under Gnome menu System -> Administration.
1. Add a printer definition, using kdeprint (Gnome menu System -> Preferences -> Printers).
Select Other printer type.
In the URl: type
ncp://COMPANY_FS/PRINTER_Q
If at this point you don't see 'Netware Printer via ncp' then refer to 'NCP Script' above.
Select the relevent printer etc. and you should have a working Netware Printer.
Add a Netware Printer with Cups Web Interface
This needs an Administrator account.
Please refer to NetworkPrintingWithUbuntu -> Ubuntu Client Machine for more info.
LogLevel warning SystemGroup lpadmin ConfigFilePerm 0600 LogLevel info Printcap /var/run/cups/printcap RunAsUser Yes Port 631 BrowseOrder allow,deny BrowseAllow @LOCAL BrowseAddress @LOCAL <Location /> AuthType None Order Deny,Allow Deny From All Allow From @LOCAL </Location> <Location /jobs> AuthType None Order Deny,Allow Deny From All Allow From @LOCAL </Location> <Location /printers> AuthType None Order Deny,Allow Deny From All Allow From @LOCAL </Location> <Location /admin> AuthType None Order Deny,Allow Deny From All Allow From @LOCAL </Location> DefaultAuthType Basic <Location /admin/conf> AuthType Basic Require user @SYSTEM Order allow,deny Allow localhost </Location> <Policy default> # Job-related operations must be done by the owner or an adminstrator... <Limit Send-Document Send-URI Hold-Job Release-Job Restart-Job Purge-Jobs Set-Job-Attributes Create-Job-Subscription Renew-Subscription Cancel-Subscription Get-Notifications Reprocess-Job Cancel-Current-Job Suspend-Current-Job Resume-Job CUPS-Move-Job> Require user @OWNER @SYSTEM Order deny,allow </Limit> # All administration operations require an adminstrator to authenticate... <Limit Pause-Printer Resume-Printer Set-Printer-Attributes Enable-Printer Disable-Printer Pause-Printer-After-Current-Job Hold-New-Jobs Release-Held-New-Jobs Deactivate-Printer Activate-Printer Restart-Printer Shutdown-Printer Startup-Printer Promote-Job Schedule-Job-After CUPS-Add-Printer CUPS-Delete-Printer CUPS-Add-Class CUPS-Delete-Class CUPS-Accept-Jobs CUPS-Reject-Jobs CUPS-Set-Default> AuthType Basic Require user @SYSTEM Order deny,allow </Limit> # Only the owner or an administrator can cancel or authenticate a job... <Limit Cancel-Job CUPS-Authenticate-Job> Require user @OWNER @SYSTEM Order deny,allow </Limit> <Limit All> Order deny,allow </Limit> </Policy> Include /etc/cups/cups.d/ports.conf Include /etc/cups/cups.d/browse.conf
To access the Cups Web Interface goto http://localhost:631/
AccessingNetwareShares