カテゴリー別アーカイブ: linux

byobuでファンクッションキーが効かなかった件

大変お久しぶりです。

さて、screen関連とか調べていたところ、byobuというラッパーコマンドがある、という話を知りました。

http://gihyo.jp/admin/serial/01/ubuntu-recipe/0382
http://gihyo.jp/admin/serial/01/ubuntu-recipe/0291

せっかくなのでちょっとやってみるかな、とそこにあったコマンドの通りに

$ sudo add-apt-repository ppa:byobu/ppa
$ sudo apt-get update
$ sudo apt-get install byobu

とやってインストールしてみて動かそうとしたところ、F2キー(新しいウインドウを作る)がどうしても動かないという現象に直面しました。

はじめはF1も動かなかったのですが、こちらはgnome-terminalの方のショートカットに登録されていたということで、「編集→キーボードショートカット」から該当箇所(一番下の「ヘルプー内容」のところをクリックして選択した上で、BSキーを押すことで「無効」にすることで対応できました。
だが、F2がどうしてもうまく動かない。F3以下のキーは一通り動いたかと思うのですが、F2だけがどうしても動かない。F2もshift-F2もダメ。
“プレフィックスキー C”では動くので、何かF2の制御がよそに取られているのかなと思ったりして色々とあーだーこーだとやったのですがどうしてもダメでした。

そんな中、ネットで漁った記事の中にて、このような記述が。

http://techracho.bpsinc.jp/tsunekawa/2013_09_26/13646

最近になって byobu-config というコマンドを知りました。 F9キーで開くメニューをコマンドラインから開くことができます。

byobu-ctrl-a という使い道の限定されたコマンドではなくこちらを薦めてくれればいいのに。
byobu-config コマンドの機能なのか確認は取れていないのですが、 私の環境では byobu-config でメニューを開いた後はF9キーでもメニューが開けるようになりました。

こちらを参考にして、一度byobu-configとやってみたところ、それだけでF2キーやshift-F2キーが使えるようになりました。

参照先は(macでの)F9の話だったのですが、ubuntu12.04上の私の環境でも、F2キーに関して同様の対処で使えるようになりました。対処に色々と苦労して時間ばかり使ってしまっていたので、とかく貴重な情報でした。ありがとうございます。

 ……とだけ書いて記事を投稿する予定だったのですが、その後またF2キーが使えなくなるという現象が発生しましたorz

 ただ、byobuその後 sudo apt-get purge byobu 等やってアインインストールした後再インストール等やってみたところ、現象が消え、普通にf2が使えるようになりました。
 sudo add-apt-repository ppa:byobu/ppa をやったのが関係しているのかなと思いレポジトリを削除した上で再インストール等やってみたのですが、そもそもどちらもbyobuのバージョンが5.17で同じだったりしたので関係は無いのかも知れません。

 とかく、一度byobu-configをやったあと使えるようになった、という現象は確かにあったかと思います。

 とりあえず、これでしばらく様子を見てみたいと思います。


Dropboxで共有されないファイルがある時にまず最初に確認すべきこと

 dropbox上にアップロードした筈なのに、他のPCでダウンロードされないファイルがあることに気づきました。

 具体的には、Ubuntu上で作成したファイルを共有して、いざWindows上で使おうと思ったら見つからない、と。

 で、検索してみるとdropboxのサイトにこんなページが。

https://www.dropbox.com/ja/help/145

ファイルが正確に同期されていることを確認するには、コンピュータがインターネットに接続していること、そして同じ Dropbox アカウントにリンクされていることを確認してください。コンピュータが同期しても、ファイルが特定のオペレーティング システムで表示されない場合は、ファイルに何らかの問題がある可能性があります。

オペレーティング システム間で問題が発生するのは稀なことではありません。その場合、Dropbox デスクトップ アプリケーションは、そうした整合性に関する問題を調査し、その修正に努めます。修正が不可能な場合、ファイルはウェブサイトで同期されますが、互換性のないオペレーティング システム間では適切に表示されなかったり正確に機能しない場合があります。

同期エラーが生じる可能性のあるファイルを確認するには、Dropbox ウェブサイトにログインし、Dropbox の不良ファイル チェック ツールにアクセスしてください。

 ほぅほぅ、と。

 で、そこにある「不良ファイルを確認する」をクリックしてみます。

 そうすると、

「お客様のアカウントを分析しています。お待ちください…」

という表示が出て、しばらく待たされます。

dropbox1

 そして、出てきました。

 なんかこう、ずらずらと大量に

「ファイル名に無効な文字が含まれています」
「ファイル名に無効な文字が含まれています」
「ファイル名に無効な文字が含まれています」
「ファイル名に無効な文字が含まれています」
「ファイル名に無効な文字が含まれています」
「ファイル名に無効な文字が含まれています」

 と……。

err1

 で、結論としては、Ubuntuで作成したキャプチャファイルが、標準で「:」セミコロンを使っていたのが原因でした。ubuntuの標準のスクリーンキャプチャの出力ファイル名が、標準だと「Screenshot_from_20xx-xx-xx xx:xx:xx.png」となるようで、windowsではセミコロンの使用したファイルはエラーになる為、共有されなかった模様。

ちなみに、先ほどのページの下の方には、「上級ユーザー向け」という項目があり、共有されない場合について大量に事例が列挙されています。とかく、妙な形式にはしない方が良い、ということらしく。

 それと、

Linux で 1 万件以上のフォルダを監視する

Linux 版の Dropbox デスクトップ アプリケーションは、デフォルト設定により 1 万件以上のフォルダを監視することはできません。制限数を超えた場合は監視されないため、同期中に無視されます。簡単な回避策として、まずターミナルを開き次を入力してください:

echo fs.inotify.max_user_watches=100000 | sudo tee -a /etc/sysctl.conf; sudo sysctl -p
このコマンドでシステムに 10 万件までのフォルダを監視するように指示することができます。コマンドを入力しパスワードを入力したら、すぐに Dropbox が同期を再開します。

 という部分にはちょっと気を付けたいですね。基本だと1万件以上はダメなのかー。

 とかくまぁ、共有されないと思ったら、とかくまず、
https://www.dropbox.com/ja/help/145
のリンク先の「不良ファイルを確認する」をクリックしてみるのが良いかと思います。

 ……というか、特に共有されていないファイルは無いと思っていても、たまには覗いてみると良いかもです。

 現に私は、自分でも気づいていなかった共有されていないファイルをいくつか見つけました。危ないあぶない…。

 とかく、そんなdropboxネタなのでした。


プリンタードライバー(Fuji Xerox)をUbuntuに入れる(プリンターのつなぎ方)

ubuntuの再インストールにあわせて富士ゼロックスのプリンタドライバを突っ込み直したので、やりかたを一応メモ。

ドライバページ
http://www.fujixerox.co.jp/download/docuprint/download/p450d/linux_ubun64/

 ドライバページを開きます。
 接続したいプリンターと、対応するOSがちゃんと記載されていることを確認した上で、fxlinuxprint_1.1.1-1_amd64.debをダウンロード。
 そして、そのままそのファイルをソフトウェアセンター等で開き、インストール処理をします。

 これで、ドライバの準備は完了。

 その後、システム設定から「印刷」(Ubuntu12.04の場合)を開き、追加ボタンを押します。
 もし登録するのがネットワークプリンターの場合は、「ネットワーク」から登録したいプリンターを選択。

 さて、後は適当にやっていけば良い感じなのですが、ちょっと注意が。
 プリンターを選択した後、対応するドライバーを選ぶことになるんですが、富士ゼロックスの場合、

ドライバ表示

 この通り、「FX」が対応するドライバーになります。
 FujizeroXだからFXってのは良くわかるのですが、そのままの名前ではないので一応注意というか。
 まぁ、上の”fxlinuxprint_1.1.1-1_amd64.deb”もちゃんと”fx”にはなっている訳ですが…。

 というわけでこの”FX”を選ぶとこんな画面に。

fx

 あとはそのまま適当に登録すればOK。

 一応テストページが印刷できるので、ちゃんと繋げているかどうかもわかります。

 恐らく、他のメーカーのプリンターも似たようなやりかたでできるんじゃないかと。
 Ubuntuの標準ドライバもあるようなので、もし対応するドライバが無い場合はそっちも試しみても良いのかもしれません。


“Warning: the RSA host key”の警告を無視したら地味に被害があった件

$ssh なんちゃら、とどこぞにログインしようとしたら、

Warning: the RSA host key for なんちゃら differs from the key for the IP address 'なんちゃら'
Offending key for IP in ほにゃらら/.ssh/known_hosts:8
Matching host key in ほにゃらら/.ssh/known_hosts:11
Are you sure you want to continue connecting (yes/no)?

とか言われました。

で、以前似たようなことがあって何かぐぐって対処もしたんだよなぁと思いつつ、ちょっと急いでたのでYES!YES!YES!と無視してそのまま作業を継続。
具体的には、大量のファイルをscpしたかったので、一回ログアウトしてから、scp -r なんちゃらとか入力。
で、scpの時も同様のwarningがでて、OKOK、と無視してそのままコピーとかやってた訳です。

しばらくは普通に動いてたので、安心して放っておいたら……。

なんかしばらく時間がたって、そろそろ完了してるかなー、と思って確認したら、なんかエラーメッセージが出て、途中でコピーが止まってる。

(アカン)

と思いましたね、ええ。

具体的なエラーメッセージをコピっていなかったのが惜しいところなのですが、「RSAがなんちゃらだけどこれでいいの? 何か入力して?」みたいなメッセージだったかと思います。

しかも、その後うんともすんとも言わなくなってしまい、当然何かのコマンドやパスの入力とかもできず、挙句の果てにCTRL-Zも効かないのでやむなくterminal window自体を切るという羽目になったのでした。

やっぱこの手の警告メッセージはちゃんと早めに対処しないと、という教訓ですね。

というわけで、多分以前似たようなことをやったなぁと思いつつ、念の為、ぐぐって、

http://qiita.com/grgrjnjn/items/8ca33b64ea0406e12938

を見てみる。

保存している接続先サーバの情報(フィンガープリント)を削除してしまえば、新規接続となるためエラーを回避できる。そのコマンドは、ssh-keygen -R hostnameで行うのが正解。.oldを付けてバックアプも自動で作られる。

(中略)

実態は~/.ssh/known_hostsファイルなので、直接編集しても良い。エラーとなったサーバ名(またはIPアドレス)から始まる行を1行削除するだけ。

……とのことです。

ただ、微妙にエラーメッセージが違うんですよね。
念の為もう少し検索してみる。

https://lists.ubuntu.com/archives/ubuntu-jp/2009-March/001653.html

> Offending key for IP in /home/inaba/.ssh/known_hosts:2
> Matching host key in /home/inaba/.ssh/known_hosts:3
から、当該のIPアドレスのエントリが known_hostsファイルに二つ存在していますね

2行めと3行めですね。

sudo vi known_hosts にて ファイルを開いて、
2行めを削除するとなおりますよ

なるほど!

というか以前に対処した時もこちらを拝見して参考にさせて頂いた気がします。

……という訳でknown_hostsファイルを開いてみました。

大量の暗号化された文章(改行)
大量の暗号化された文章(改行)
大量の暗号化された文章(改行)
大量の暗号化された文章(改行)
大量の暗号化された文章(改行)
大量の暗号化された文章(改行)
大量の暗号化された文章(改行)
大量の暗号化された文章(改行)
大量の暗号化された文章(改行)

こんな感じのファイルが…。

どうやら、これが暗号化されている、ということらしいです。

とりあえず、

Offending key for IP in なんちゃら

で示された行を削除すれば良いということのようなので、その通りに該当の行を削除しました。
#viは慣れてないのでemacsで、ですが……。

その後、無事にエラー無しで一括scpも出来たのでした。やれやれ。


Ubuntu12.04(OEM版)でHMEのサポートが終わるよ、と警告を受けたので更新したら色々とハマった

Ubuntuのシステムを更新していたら、以下のようなメッセージが出ていることに気づきました。

アップデートマネージャー_057

最新に更新したのでおかしいなぁ、と思って More infoを押してみる。

New important security and hardware support is available

ふうむ、ということでとりあえず関連情報を色々とぐぐってみました。

http://qiita.com/chromabox/items/4d93972d05d738c0f414

つい最近ですが、私も12.04のパッケージをアップデートしているとサポートがそろそろ切れるからなんとかしてくれ的なメッセージでてくることがありました。
ん?12.04ってまだサポート切れてないよね??と思って調べてみると、どうやらカーネルと周辺のドライバのサポートが切れて14.04のカーネルと同じにするということみたいでした。
http://wiki.ubuntu.com/1204_HWE_EOL
そりゃメンテする側からしたらカーネルとかあの辺りは一緒にできるならしたほうがサポートしやすいよね。
上記ページをよく読むとどうやら、このままではカーネルとドライバのサポートが切れてカーネルとドライバのアップデートが提供されない模様。
これはあまりよろしくないということで、取り急ぎ書いてあったコマンドで確認。

……ということらしいのでということらしいので上記のサイトを見習って端末にてコマンドで確認。

$ hwe-support-status --verbose

Dear Ubuntu user, your current Hardware Enablement Stack (HWE) is going out of support
on 2015-04-30. After this date, security updates for critical parts of your system
will no longer be available. We recommend you upgrade your system. If you experience
any issue after this upgrade, please post a message on askubuntu.com using the
tag 'oem' (you can use this link: http://www.askubuntu.com/questions/ask?tags=oem).

For more information, please see:
http://wiki.ubuntu.com/1204_HWE_EOL_OEM

グラフィックスタックがインストールされています。サポートされている
(あるいはサポートが終了した)状態へのアップグレードは 2014-07-16
以降に提供され、Dashから'update-manager'を実行すると起動でき
ます。

……なんとなくわかりました。

色々検索して

http://askubuntu.com/questions/604692/1204-hwe-eol-oem

にたどり着く。

You just need to upgrade your system by using the “Update manager”, it could be found in your dash:

微妙に表示されてる画像と出てる画像が違うような。
まぁ結局は「アップグレード」を押すんでしょうけれども。

ただ、上記qiita.comのサイトで言及されているURLと、自分がMore infoで見たページのURLは微妙に違っています。
自分の見たURLは、
https://wiki.ubuntu.com/1204_HWE_EOL_OEM

ってなってる。どうやら自分が使っているこのマシンのubuntuがOEM版の為、微妙に異なっている模様。

見比べてみる。

http://wiki.ubuntu.com/1204_HWE_EOL

And why should I care?
Starting Aug 8, 2014 systems running 12.04.2 HWE, 12.04.3 HWE, or 12.04.4 HWE will no longer receive software updates for the kernel and, if you’re running it, the graphics stack.

https://wiki.ubuntu.com/1204_HWE_EOL_OEM

Why Should I Care ?
As of August 8, 2014, systems running stock Ubuntu 12.04.2, 12.04.3, or 12.04.4 no longer receive software updates for the kernel and the graphics stack from the standard Ubuntu PPAs.

As an exception, Canonical’s Professional Engineering Services team has been providing security updates as an extended support service for PCs from our OEM partners which were pre-loaded with Ubuntu 12.04.2 or 12.04.4. This extended support will no longer be available after April 30, 2015. Therefore, we strongly recommend you upgrade to the 12.04.5 HWE stack which will continue to receive security updates until April 2017. To upgrade to 12.04.05 simply follow the steps when prompted by the Update Manager.

 どうやら、OEM版の場合、「ホントは2014年8月8日までだけど、OEMパートナーのOSには、例外としてサポートしてあげてたよ、でもそれも2015年の4月30日までだから、 12.04.5 HWE にアップデートすることを強くおすすめするよ」ってことらしく。


(※ちなみにあまりこの辺りのことに詳しくない私には、端末で出てきた

グラフィックスタックがインストールされています。サポートされている
(あるいはサポートが終了した)状態へのアップグレードは 2014-07-16
以降に提供され、Dashから'update-manager'を実行すると起動でき
ます。

 の部分もちゃんとわかっていなかったりします。
 
ぐぐったところ、

https://translations.launchpad.net/ubuntu/precise/+source/update-manager/+pots/update-manager/ja/+filter?person=hito&direction=backwards&start=150

にて、

402.
There is a graphics stack installed on this system. An upgrade to a supported (or longer supported) configuration will become available on %(date)s and can be invoked by running ‘update-manager’ in the Dash.
2014-08-07
グラフィックスタックがインストールされています。サポートされている (あるいはサポートが終了した)状態へのアップグレードは %(date)s 以降に提供され、Dashから’update-manager’を実行すると起動でき ます。

 という部分があり、この文章の和訳だ、ということまではとりあえず分かったのですが……。
 まぁとりあえずここの部分はさておきます。)

 とかく、このままではやっぱまずいのかな、ということでアップデートをしてみます。

※いや、ここからが大変だった訳ですが……。

 とりあえず、アップデートをクリック。

認証_061

 ちなみに詳細を確認するとこんな感じ。

認証

 という訳で、認証してみます。

 なんかいつもみたいな変更過程のメッセージとか一切無くて不安なのですが、画面の右端のちっちゃなゲージで、一応進行状態が確認出来るのでそれでしばらく辛抱強く待ちます。

 そのうち、再起動を促すメッセージが。

アップデートマネージャー

 YES!YES!YES!YES!YES!

 と景気良く了解してみたまでは良かったのですが……。

 再起動しない。

 うん、焦りましたし、青ざめましたね!

 その時点で初めてちゃんとバックアップも取っていなかったと気づいたダメダメっぷりで。
(※一応ubuntu標準のバックアップは自動でかかってましたが、後で確認したら6日前までしか取れていませんでした……)

 とかく、何かグラフィックドライバが悪さしているのかも、と思って複数台繋いでいたモニタを一台だけにする→まだダメ
 外付けのHDDも外してみる→OK

 という訳で、色々外してやっと再起動を確認。そこに戻るまで随分と時間がかかってしまいました……。

(※ちなみにその後、外付けHDDをもう一度再接続してみると、そこまではOKで、モニターまで残すと起動しない、という謎な状況に。)

 とかく、一応結果的にこうなります。

アップデートマネージャー

 お疲れ様でした。

 ……で、終わりたいところなのですが、結局私はその後、データのバックアップを取り直すなどしてから、再インストールをし直すことになりました。
 なんだか動作がどうにも不安定だし、複数モニタは結局繋がらない。

 上のqiita.comにも言及があった、nVidiaのプロプラエリタリドライバ関連が悪さをしているのだろうと思いますが、そこのページにあった

$ sudo apt-get install -V libglapi-mesa-lts-trusty libgl1-mesa-glx-lts-trusty xserver-xorg-lts-trusty xserver-xorg-input-all-lts-trusty xserver-xorg-video-all-lts-trusty libgl1-mesa-dri-lts-trusty x11-xserver-utils-lts-trusty libglapi-mesa-lts-trusty:i386 libgl1-mesa-dri-lts-trusty:i386 libgl1-mesa-glx-lts-trusty:i386 libgles2-mesa-lts-trusty libglapi-mesa-lts-trusty mesa-vdpau-drivers-lts-trusty

 等を試してみると、それこそ、本当に起動しなくなる、というオチまでついてしまいました、という。

 何にせよ、OEM版というのは色々とクセがある、ということなのかも知れません。

 という訳で、結局再インストールして一から元に戻すという結果に相成ったのでしたorz

 後日、復旧したUbuntu上で環境を再構築しようかな、といったところです。

 折角ですので、そのうちにその辺りの過程も適当に書いて行こうかなぁ、などと思っています。


ubuntuでジョブデスクトップ上でフリーズしたアプリをkillする

文字通り。
killはいいとしてプロセスIDはどう見るんだっけ、と。

killしたいのはデスクトップ上で固まったアプリ。

端末を起動してもただpsだと出てこない。

$ps alx

で出てきた。

目的のジョブぽいものを端末の検索機能で検索して見つける。
プロセスIDをコピーして

$kill ID

で出来た。

ちなみに固まったのはFileZilla。
linux上で動作する、FFFTPみたいなファイル転送ソフトです。

これも固まることがあるんだなぁ、と。
でも、(私の環境では)gFTPよりはまだ安定してるかと思います。
(あくまで私の環境では)兎に角gFTPはすぐフリーズとかしてしまうのですよね……。

という訳で今後も有り難く使わせていただくつもりです。


なぜかubuntu上のchromeでctrl-^で「ズーム」になる。

 上記の通り。
 最近、タイピングをして急にchromeがズームになることがあって原因がよくわかりませんでした。
 で、いろいろ調べた結果、「ctrl-\」と打とうとして、間違えて「ctrl-^」と打ってしまった時にchromeはズームになる、と分かりました。firefoxとかではそういうことは起こらず、chromeのみ。
 私は普段、自分で設定したキーバインドで「ctrl-\」を多用している為、そんなことが起こってしまったようです。
 でも、そもそもchromeも、公式の設定では拡大は「ctrl-+」、縮小は「ctrl–」らしい。
 ただ、自分のキーボードではctrl-+ではchromeは反応しないんですよね。確認してみたところ。
 ただし、これはubuntu(12.04)上のchromeのみで、同じキーボードをwindows8に繋いだ時は現象は起こりませんでした。
 結局、現状では原因不明です。
 普段のキー入力等は特におかしいということは無いのですが。

 私の好みで、ctrlとcapsは入れ替え設定にしているのですが、ひょっとしたらそのあたりに何か原因があったりするのかも知れません。

 そのうちちゃんと調べたい。


c-x c-cで終了出来ないemacsを終了させる

対処法:M-x kill-emacs。

ubuntuの端末越しに、SSHで繋いだサーバー上のファイルをemacsをいじることが多いのですが、c-x c-cでemacsが終了できず困ってました。
そもそもコマンドを受け付けてくれない、という感じで。
結局ぐぐって教わった対処法はM-x kill-emacsでした。

http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1275478537

ただ、リンク先とかは基本的にcygwinでのemacsの対処法なので、私の事例の場合、別の対処法がちゃんとあるのかも知れないです。


hg clone を debianで使いたい

apt-get install hg ……じゃないらしい、という訳で検索。

結論:
$sudo apt-get install mercurial

以下、調べた過程

そもそもhgって何?

http://sourceforge.jp/hg/

MercurialはPythonで実装されたクロスプラットフォームのソースコード管理システムです。

(中略)

バージョン管理というのは、指定した任意の時点における指定したファイルやディレクトリの内容を「リポジトリ」と呼ばれるデータベースに記録しておくことで、変更の内容をあとから容易に参照できるようにすることです。

恥ずかしながら、リンク先の全文を読んだ時は、なるほど、わからn・・・とかなりかけたのですが、いや、まぁちゃんと読めば一応わかった……と、思います。勉強になります。そういえば、そもそも「リポジトリ」が正確には何なのかも恥ずかしながら理解していなかったもので。

既存のMercurialリポジトリをコピーしてローカルリポジトリを作成する場合は「hg clone」コマンドを実行します。

$ hg clone <リポジトリのURL>

なるほどです。
とりあえずcloneが使いたい。

インストールはどうやるのか。

http://troter.jp/how-to-install-mercurial/

Debian/Ubuntu

apt-getでインストールする事が出来ます。

% apt-get install mercurial

なるほどです。

$sudo apt-get install mercurial と入れてみる。

Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
mercurial-common
Suggested packages:
qct wish kdiff3 kdiff3-qt kompare meld xxdiff tkcvs mgdiff python-mysqldb
python-pygments python-openssl
The following NEW packages will be installed:
mercurial mercurial-common
0 upgraded, 2 newly installed, 0 to remove and 151 not upgraded.
Need to get 2,413 kB of archives.
After this operation, 8,067 kB of additional disk space will be used.
Do you want to continue [Y/n]? y
Get:1 http://ftp.jp.debian.org/debian/ wheezy/main mercurial-common all 2.2.2-3 [2,320 kB]
Get:2 http://ftp.jp.debian.org/debian/ wheezy/main mercurial amd64 2.2.2-3 [93.1 kB]
Fetched 2,413 kB in 1s (1,440 kB/s)
Selecting previously unselected package mercurial-common.
(Reading database ... 164444 files and directories currently installed.)
Unpacking mercurial-common (from .../mercurial-common_2.2.2-3_all.deb) ...
Selecting previously unselected package mercurial.
Unpacking mercurial (from .../mercurial_2.2.2-3_amd64.deb) ...
Processing triggers for man-db ...
Setting up mercurial-common (2.2.2-3) ...
Setting up mercurial (2.2.2-3) ...

$ hg
Mercurial Distributed SCM

basic commands:

add add the specified files on the next commit

(中略)

update update working directory (or switch revisions)

use "hg help" for the full list of commands or "hg -v" for details

出来ました。