Ubuntu 13.04にSkypeをインストールする方法【デバッグ手順付き完全ガイド】
注意:この記事は、Skype for Linux 4.2が正式リリースされる前に執筆されたものです。そのため、ここで紹介している内容の一部は現在では当てはまらない可能性があり、すべてがスムーズに動作するかもしれませんし、そうでないかもしれません。ぜひ最後までお読みください。
最近、「最新版のUbuntu 13.04(Raring Ringtail)にはSkypeをインストールできない」という噂や懸念を目にするようになりました。さらに、XubuntuなどのUnity以外のデスクトップ環境では動作しないと指摘する人もいました。
そこで今回は、この噂が本当かどうか実際に検証してみることにしました。もし事実であれば、Skypeを動作させるための回避策をいくつかご紹介します。少しマニアックな操作も登場しますので、最後までお付き合いください。それでは始めましょう。
Skypeのインストール
Ubuntuソフトウェアセンターを使うか、公式サイトからDebianパッケージ(.deb)をダウンロードしてインストールできます。なお、公式インストーラーは32ビット版のみ提供されているため、64ビットシステムをお使いの方は少し不安に感じるかもしれません。しかし、心配はいりません。ダウンロードしたファイルをダブルクリックすると、Ubuntuソフトウェアセンターが起動し、パッケージのインストールを促してくれます。依存関係もバックグラウンドで自動的に解決してくれます。これは最近Steamをインストールしたときと同じ流れです。
コマンドラインからパッケージをインストールする場合は、アーキテクチャを強制指定する必要があります。具体的には以下のようなコマンドを実行します。
sudo dpkg -i --force-architecture skype-ubuntu*.deb
Skypeの起動
パッケージのインストールが完了したら、Skypeを起動してみてください。おそらく失敗するはずです。ここで、何が問題になっているのかを把握するために、少しデバッグ作業を行います。これまでのチュートリアルで身につけたハッキングスキルの出番です。まずは、コマンドラインからSkypeを実行してみましょう。
すると、次のようなエラーが表示されます。
Segmentation fault (core dump)
コアダンプと基本的なデバッグ
通常、コアダンプはカレントワーキングディレクトリ(cwd)に保存されます。しかし中身を確認しても、coreファイルが作成されていないことがほとんどでしょう。ここで、以前紹介したGNUデバッガ(gdb)のチュートリアルを思い出してください。クラッシュしたアプリケーションのメモリコアを収集する方法について解説しましたね。シェルの制限設定により、アプリケーションがcoreファイルをディスクに書き出せないようになっている可能性があります。BASHでは、ulimit -aコマンドで確認できます。
実際、coreファイルサイズが0に設定されています。これを変更しましょう。
ulimit -c unlimited
この状態で再実行すれば、コアダンプが収集されるようになります。
次に、再びgdbの力を借りて、デバッガ内でコアファイルを解析します。目的は、クラッシュ直前に実行されていた関数のトレースを確認することです。これが問題解決への糸口になります。
gdb `which skype` core
少し進展があります。スタックは壊れている可能性があります(Skypeは特殊な環境でコンパイルされているため)が、クラッシュがlibGL共有ライブラリで発生していることがわかります。Nvidiaドライバを疑いたくなるところですが、原因はそこではありません。
シンプルな説明はこうです。Skypeは/usr/lib32配下のmesaディレクトリにあるlibGLを探しに行きますが、システム側では同じライブラリが/usr/lib/i386-linux-gnuに配置されています。こうしたパス表記の微妙な違いが、アプリケーションを混乱させるのです。原因がわかったので、修正を行いましょう。まず、シンボリックリンクを作成し、ldconfigでランタイムのバインディングを再構築する方法があります。いずれもsudo権限で実行します。
それでも動作しない場合は、次のハックを試してみてください。これは、Skypeにレガシーなディレクトリを検索させたりシンボリックリンクをたどらせたりする代わりに、ネイティブのシステムライブラリを直接使用させる方法です。sudoで以下のファイルを作成します。
sudo touch /etc/ld.so.conf.d/skype.conf
ファイルの中に、次の1行を記述します。
/usr/lib/i386-linux-gnu/mesa/
その後、ldconfigを再実行します。
sudo ldconfig
Skypeの動作確認
それでは、うまく動作するか確認してみましょう。結果は成功です。しかもXubuntu上で問題なく動作しました。めでたし、めでたし!
関連記事
以下の記事も参考になるかもしれません。
Ask Ubuntuに掲載されている、Skypeに関する多数のテクニック集。
同様の症状が報告されている、SkypeコミュニティのUbuntu 13.04スレッド。
その他、トラブルシューティングに役立つハッキングガイドも多数あります。
まとめ
というわけで、Skypeは無事に動作するようになりました。Xfceデスクトップのような地味な環境でも問題ありません。他のフレーバーでもテストしましたが、すべて同じ結果でした。公式の修正がリリースされるまでの間、この方法で確実にSkypeを動作させることができます。しかも、これは今後のリリースにも応用できる汎用的なソリューションです。
何より、このチュートリアルを通じて多くのことを学べます。32ビットと64ビットソフトウェアの微妙な違い、コマンドラインやUbuntuソフトウェアセンターからのパッケージインストール方法、シェル制限の変更方法、アプリケーションのメモリコア収集、適切なデバッガを使ったトラブルシューティング、システムファイルや設定の変更方法など、盛りだくさんの内容です。Skypeを求めていただければ、おまけまでお付けしました。このガイドが皆さんのお役に立てば幸いです。ご覧のとおり、問題は見た目よりもシンプルな場合が多いのです。それでは、国際的なチャットをお楽しみください。
それではまた。
-
Windows 10 / 11 に Ubuntu をインストールする3つの方法【WSL・USB起動・仮想マシン】
Windows 10 や Windows 11 のパソコンで Ubuntu Linux を使ってみたいと思ったことはありませんか?この記事では、その手順を初心者の方にもわかりやすく解説します。 実は、Windows 上で Ubuntu をインストールして動かす方法はひとつだけではありません。本記事では、代表的な3つのアプローチをご紹介します。① Windows Subsystem for Linux(WSL)を使って Linux コマンドを実行する方法、② USB メモリから直接起動する方法、そして③ 仮想マシン(VM)上で動かす方法です。 それぞれの特徴と手順を順番に見ていきましょう。 方法
-
【Ubuntu】LinuxへのFlash Player導入ガイド – 3つの方法を解説する初心者向けチュートリアル
このチュートリアルは、新しいバージョンのLinuxやFlash Playerにもそのまま役立つ内容です。 ※編集部注: Adobe Flash Playerは2020年12月31日にサポートを終了(EOL)しています。現在はFlashコンテンツ自体がほぼ姿を消しましたが、当時の環境やレガシーなシステムを扱う際の参考として、本記事の内容を残しています。 はじめに WindowsユーザーがLinuxへの移行を検討する際、多くの人が気にかけるのがFlashの再生問題です。「LinuxでもFlashムービーやゲームを楽しめるのか?」――答えはシンプルに「はい!」です。Flash動画やアニメーションの視