Linux
 Computer >> コンピューター >  >> トラブルシューティング >> Linux

LinuxでWineのファイル関連付けをクリーンアップする方法【ステップバイステップガイド】

Wineを使って業務用アプリケーションを実行している場合でも、Windows専用のゲームを楽しむ場合でも、WineはWindowsプログラムが使用するさまざまな拡張子に対して、ファイル関連付けを自動的に登録していきます。アンインストール済みのプログラムに関連付けられた古いエントリが残ってしまうこともあれば、Wineがデフォルトで設定する関連付けによって問題が発生することもあります。たとえば、別のプログラムが偶然同じ拡張子を持つファイルを作成した場合、ダブルクリックしたときに予期しない競合が起こる可能性があります。

幸いなことに、これらの関連付けを削除するのは思ったよりも簡単です。ただし、以下の手順ではファイルマネージャーの拡張子関連付けがリセットされるため、Wineの関連付けの中に便利なものがある場合は実行しないでください。とはいえ、Wineはプログラムを再度使用するときに、関連付けを作り直すことが多いものです。また、Wine内部の「ファイル」メニューからファイルを開くのであれば、この問題はそもそも発生しません。そもそも重要なエンタープライズアプリケーションをWine経由で実行しているユーザーは少ないため、ほとんどのユーザーにとってこれは大きな問題にはならないでしょう。

方法1:Wineのファイル関連付けを完全に削除する

まず、ターミナルウィンドウを開きます。Ubuntu Unity Dashで「Terminal」と検索するか、「アプリケーション」メニューから「システムツール」内にあるターミナルを見つけてください。この作業は自分のホームディレクトリ内のファイル操作のみを伴うため、管理者権限は必要ありません。

すべてのファイル関連付けを一括で削除するには、まず次のコマンドを入力します。

rm -f ~/.local/share/applications/wine-extension*.desktop

Enterキーを押した後、続けて以下を入力します。

rm -f ~/.local/share/icons/hicolor/*/*/application-x-wine-extension*

そして再度Enterキーを押します。最初のコマンドは、Windowsプログラムが作成したWine拡張子の.desktopファイルをすべて削除し、2番目のコマンドは、Wineが関連付けたアイコンを一掃します。

一部のファイルに一見ランダムな赤ワイングラスのアイコンが表示される場合は、この手順でその問題も解決できます。これは、Wineに実際のアイコンが存在しないファイルタイプがWineに関連付けられていることが原因です。赤いグラスはWineというプログラム名にかかったジョーク的な表現ですが、直感的に理解しにくいため、初心者ユーザーを混乱させることがあります。目安として、アイコンの上にワイングラスが描かれている場合は、そのファイルがWine経由で実行されるWindowsコードに関連付けられていることを示す、Linux流のジョーク表示だと考えてください。

次に、古いキャッシュを3つのコマンドで削除します。まず

rm -f ~/.local/share/applications/mimeinfo.cache

続いて

rm -f ~/.local/share/mime/packages/x-wine*

最後に

rm -f ~/.local/share/mime/application/x-wine-extension*

をそれぞれ別々のコマンドとして実行します。ここまで進むと後戻りはできないため、本当に実行したいのかどうか、事前に確認しておきましょう。元に戻せない損害が発生するわけではありませんが、意図せずファイル関連付けを削除してしまうと、少し面倒です。とはいえ、前述の通りWineのプログラムは通常、実行時に関連付けを作り直します。

続いて、以下のコマンドでキャッシュを更新します。

update-desktop-database ~/.local/share/applications

その後、

update-mime-database ~/.local/share/mime/

を別々のコマンドとして実行してください。これで、Linuxのデフォルトのファイル関連付けが多数復活するはずです。これですべて完了です。使わなくなった古いプログラムを削除したばかりで、それに関連する関連付けも消したい場合に特に便利です。この操作ではWineが作成した他のすべてのファイル関連付けも削除されますが、VBScriptインタープリターを使用していなければ、大きな問題にはならないでしょう。VBScriptやMicrosoft JScriptのプログラムを使用している場合は、Windows Hostingの関連付けを作り直す必要がありますが、これらの関連付けは自動的に修復されます。そもそも、Wineでやりたいことの多くはシェルスクリプトでも実現できるはずです。

ちなみに、特定のゲームをアンインストールした後にも、この操作を行う価値があります。古いWindowsゲームの中には、独自のファイル拡張子を多数プログラム自体に関連付けるものがあり、そうした関連付けをきれいに掃除しておきたいケースがあるためです。

ただし、不要なときにこれらのコマンドを実行しないよう注意してください。Nautilus、PCManFM、Thunarなどのファイルマネージャーが拡張子とプログラムを対応させるために使用するMIMEタイプが実際にリセットされてしまいます。一方で、開きたいファイルを探す際に大量の関連付けを眺める必要がなくなるため、むしろ操作が快適になる可能性もあります。

方法2:ヘルプファイルの関連付けを復元する

Wineを使ってCHM形式の電子書籍を読んでいる場合は心配ありません。CHMファイルを右クリックし、「Open With(アプリケーションから開く)」を選択して、「Command line to execute:(実行するコマンドライン)」と書かれたボックスに「wine hh」と入力すれば、デフォルトのWine CHMビューアーで読み込めます。この関連付けを保存するには、「Application name(アプリケーション名)」ボックスに名前を入力し、「Set selected application as default action for this file type(選択したアプリケーションをこのファイルタイプのデフォルトアクションに設定)」をクリックして永続化します。

CHMファイルを使用しない、またはネイティブのLinuxブラウザーで開いている場合は、この作業は不要です。近年はITマニュアルの多くがPDF形式で公開されていますが、古いバージョンのWindowsアプリケーションのヘルプファイルやコーディングマニュアルを読むために、この機能が必要になるかもしれません。また、Wineをインストールせずにこれらのファイルを読み続けたい場合は、Firefox向けのブラウザー拡張機能も検討する価値があります。Wineを単なるビューアーとしてしか使っていないのであれば、これでファイル関連付けの問題自体を解消できるでしょう。

著者について

LinuxでWineのファイル関連付けをクリーンアップする方法【ステップバイステップガイド】

Kevin Arrows(ケビン・アローズ)

ケビン・アローズは、10年以上の業界経験を持つベテランのテクノロジースペシャリストです。Microsoft認定テクノロジースペシャリスト(MCTS)の資格を保有し、最新の技術動向を追いかけることに深い情熱を注いでいます。ソフトウェア開発、サイバーセキュリティ、クラウドコンピューティングなど、幅広い技術トピックについて執筆しており、複雑な技術的概念を明確かつ簡潔に説明する能力で同業者から高い評価を得ています。

  1. Bashで乱数を生成する4つの方法:コマンドライン活用ガイド

    Bashのプロンプトからは簡単に乱数を生成でき、その数値をそのまま変数に設定することもできます。これは特定の種類のスクリプト作成から、テーブルトップRPGのセッション運営まで、幅広い場面で役立ちます。D&Dキャンペーンの準備でも、強力なbash言語を使ったユーティリティ開発でも、多くの場合たった1行のコードで済みます。また、特定のセキュリティチェックを行う際にも便利なツールですが、熟練したクラッカーであればこうした単純な乱数生成器を回避できる点には留意が必要です。それでも、パスワードやコードの生成には十分有用であり、セキュリティ維持の一助となるでしょう。 乱数の生成方法はいくつかあり、すべての

  2. Linuxの「Broken Pipe(パイプ破損)」エラーを解決する方法 – apt-getトラブルの対処ガイド

    Linuxは安定して動いているように見えても、まれにパッケージが一切インストールできなくなることがあります。DebianやUbuntu、そしてそれらから派生したディストリビューションはapt-getパッケージマネージャーを採用しています。通常、管理者(root)権限があれば「apt-get install -f」コマンドを実行することで、必要な追加パッケージをインストールできます。しかし、ごくまれに「dpkg-deb: error」というメッセージが表示され、その後「broken pipe(壊れたパイプ)」エラーが発生したと通知されるケースがあります。 通常、「broken pipe」という用