2016年07月21日21:18
【困った..】CentOS7でプリンタドライバが入らない件
カテゴリー │サーバー
こんにちは、たかしーです。
先日、実家にあるUbuntu12.04 サーバーがおかしくなりました。
写真を撮り忘れてしまったのですが、GUIが起動しなくなり、CPUもずっと100%近く使用されている状態になっていました。
このサーバーは、自分の初代の自宅サーバーだったのですが、スペック不足だったため別のマシンに移行し、現在は実家でプリントサーバー兼NASとして動かしていました。
NASデータは外部HDDに入っていますし、システム領域に必要なものは何も入っていない状態でしたので、OSを上書きすることにしました。
今回はUbuntu12.04ではなく、CentOS7にしてみました。
Ubuntu系でないOSのほうが、グラフィックの問題を回避できるのではと何となく考えたからです。
ウーン、なかなかの遅さ...
一時間半後、ようやくインストールが完了。
グラフィックも問題なく出力されるようになり、デスクトップを再び拝むことができるようになりました\(^o^)/
家のプリンタがCanonのMG6130だったので、サイトからドライバをダウンロード。
これであとはtarボールを解凍してinstall.shを実行すれば完了...!
と思いきや、思わぬアクシデントが(
アレー、なんか見たことないエラーが...
何度やってもうまくいかないので、少々面倒ですがinstall.shの中身を確認。
中にあるスクリプトで、エラーメッセージを表示させている部分を探したのですが、メッセージどころか日本語すら見つからない。
おいおいまじかよと思い、フォルダ内を探し回った結果、
resources/printer_ja_utf8.lc
に、出力されたエラーメッセージと同様の文字列を発見。
L_INST_PRN_01_27="プリンターの登録が完了していません。\nlpadminコマンドを使用し>て、手動でプリンターの登録を行ってください。\n"
どうやら、言語ごとにメッセージファイルを切り替えているようです。
この代入されている L_INST_PRN_01_27 を install.shから探すと、見つけました。
956行目あたりに
$P_cupsd_command_current restart 1> /dev/null #show error message only
if [ $? -ne 0 ]; then
printf "$L_INST_PRN_01_27"
exit #quit immediately
fi
という記述があり、cupsの再起動をかけ、もし再起動に失敗した場合に、例のメッセージを表示する仕組みになっていることが分かりました。
なるほど、再起動回りか...ということで、再起動コマンドを渡していると思われる変数
P_cupsd_command_current
を検索。
276行目あたりに
if [ -f "$P_cupsd_command_1" ]; then
P_cupsd_command_current=${P_printer_sudo_command}$P_cupsd_c ommand_1
return 0
fi
という記述、さらに、P_cupsd_command_1を検索すると...
107行目に
P_cupsd_command_1="/etc/init.d/cups"
というコマンドを発見。
centOS7からはsystemdという仕組みになったので、/etc/init.d/cupsファイルは入っていません。
よって、当然再起動ができず、エラーとなります。
serviceコマンドはsystemctlコマンドにリダイレクトされますが、いまだに使うことができます。
ということで
P_cupsd_command_1="/etc/init.d/cups"
を
P_cupsd_command_1="service cups"
に変更
さらに
P_cupsd_command_2="/etc/init.d/cupsys"
を
P_cupsd_command_2="service cupsys"
に変更。
これで行けるやろ!!!やっとインストールできる!!!
と喜び勇みながらinstall.shを実行!
と こ ろ が...
端末には...
「プリンターの登録が完了していません。
lpadminコマンドを使用して、手動でプリンターの登録を行ってください。」
.......
もはや、何も言葉は出まい...
install.shをよく見ると、
L_INST_PRN_01_27
が記述されたif文が無数にありました。
全部チェックするわけにもいかず、ここで断念しました((
せめて、何のエラーが出て止まっているのか教えてくれればいいのですがorz
潔くlpadmin使って設定しますか...
先日、実家にあるUbuntu12.04 サーバーがおかしくなりました。
写真を撮り忘れてしまったのですが、GUIが起動しなくなり、CPUもずっと100%近く使用されている状態になっていました。
このサーバーは、自分の初代の自宅サーバーだったのですが、スペック不足だったため別のマシンに移行し、現在は実家でプリントサーバー兼NASとして動かしていました。
NASデータは外部HDDに入っていますし、システム領域に必要なものは何も入っていない状態でしたので、OSを上書きすることにしました。
今回はUbuntu12.04ではなく、CentOS7にしてみました。
Ubuntu系でないOSのほうが、グラフィックの問題を回避できるのではと何となく考えたからです。
ウーン、なかなかの遅さ...
一時間半後、ようやくインストールが完了。
グラフィックも問題なく出力されるようになり、デスクトップを再び拝むことができるようになりました\(^o^)/
家のプリンタがCanonのMG6130だったので、サイトからドライバをダウンロード。
これであとはtarボールを解凍してinstall.shを実行すれば完了...!
と思いきや、思わぬアクシデントが(
アレー、なんか見たことないエラーが...
何度やってもうまくいかないので、少々面倒ですがinstall.shの中身を確認。
中にあるスクリプトで、エラーメッセージを表示させている部分を探したのですが、メッセージどころか日本語すら見つからない。
おいおいまじかよと思い、フォルダ内を探し回った結果、
resources/printer_ja_utf8.lc
に、出力されたエラーメッセージと同様の文字列を発見。
L_INST_PRN_01_27="プリンターの登録が完了していません。\nlpadminコマンドを使用し>て、手動でプリンターの登録を行ってください。\n"
どうやら、言語ごとにメッセージファイルを切り替えているようです。
この代入されている L_INST_PRN_01_27 を install.shから探すと、見つけました。
956行目あたりに
$P_cupsd_command_current restart 1> /dev/null #show error message only
if [ $? -ne 0 ]; then
printf "$L_INST_PRN_01_27"
exit #quit immediately
fi
という記述があり、cupsの再起動をかけ、もし再起動に失敗した場合に、例のメッセージを表示する仕組みになっていることが分かりました。
なるほど、再起動回りか...ということで、再起動コマンドを渡していると思われる変数
P_cupsd_command_current
を検索。
276行目あたりに
if [ -f "$P_cupsd_command_1" ]; then
P_cupsd_command_current=${P_printer_sudo_command}$P_cupsd_c ommand_1
return 0
fi
という記述、さらに、P_cupsd_command_1を検索すると...
107行目に
P_cupsd_command_1="/etc/init.d/cups"
というコマンドを発見。
centOS7からはsystemdという仕組みになったので、/etc/init.d/cupsファイルは入っていません。
よって、当然再起動ができず、エラーとなります。
serviceコマンドはsystemctlコマンドにリダイレクトされますが、いまだに使うことができます。
ということで
P_cupsd_command_1="/etc/init.d/cups"
を
P_cupsd_command_1="service cups"
に変更
さらに
P_cupsd_command_2="/etc/init.d/cupsys"
を
P_cupsd_command_2="service cupsys"
に変更。
これで行けるやろ!!!やっとインストールできる!!!
と喜び勇みながらinstall.shを実行!
と こ ろ が...
端末には...
「プリンターの登録が完了していません。
lpadminコマンドを使用して、手動でプリンターの登録を行ってください。」
.......
もはや、何も言葉は出まい...
install.shをよく見ると、
L_INST_PRN_01_27
が記述されたif文が無数にありました。
全部チェックするわけにもいかず、ここで断念しました((
せめて、何のエラーが出て止まっているのか教えてくれればいいのですがorz
潔くlpadmin使って設定しますか...