0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Debian 10のgdebiのバグを回避して利用する方法

Last updated at Posted at 2020-07-12

[2020/7/14 追記] Step1の内容が不要なことを確認しました。読み飛ばしてください。ご迷惑をおかけして申し訳ございません。
#はじめに
こんにちは。皆さんはDebianをお使いですか?GNOME以外のデスクトップ環境をお使いですか?
野良パッケージをGUIツールを用いてDebianにインストールする場合、GNOMEデスクトップではGNOME Softwareが便利ですが、それ以外のデスクトップではgdebiが有効です。
しかし、Debian 10のgdebiはファイルマネージャーからdebファイルをダブルクリックして起動した場合、「パッケージをインストール」ボタンをクリックすると終了し、パッケージはインストールされません。今回は、この症状を回避してgdebiを使えるようにするための方法を紹介します。
#考えられる不具合の原因と対策の流れ
筆者は素人なのであくまでも挙動からの推測ですが、「パッケージをインストール」ボタンをクリックしたときのroot権限への切り替えがうまく行っていないようです。そこで、gdebiを最初からroot権限でrootユーザーとして起動することで、不具合を回避します。以下では、その方法を3つのステップに分けて説明します(2020/7/14追記: Step1は不要です。読み飛ばしてください。Step2・3を読んでください)。gdebiはすでにインストールされているものとします。
#Step1. PATHの設定→不要です、読み飛ばしてください[2020/7/14]
一部の野良debパッケージは、インストール時に/usr/sbinなどに配置されているコマンドをフルパスを指定せずに実行しようとします。しかし、Debian 10の標準設定では、NewInBusterにあるように、root権限になっただけでは/usr/sbinなどにPATHは通らず、インストールを実行できません。
そこで、/etc/login.defsについて、PATHの設定を行っている部分(102行目付近)を以下のように変更し、root権限で/usr/sbinなどにPATHが通るようにします。

/etc/login.defs
ALWAYS_SET_PATH yes
ENV_SUPATH	PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
ENV_PATH	PATH=/usr/local/bin:/usr/bin:/usr/sbin:/bin:/usr/local/games:/usr/games

設定が終わったら再起動します。
以下の記事を参考にしました。
NewInBuster - Debian Wiki
Debian $PATH variable change - stack overflow

~~…とここまで解説してきましたが、Step2以降の設定を行うにあたり、Step1が必要あるのか正直分かってないです。誰か教えてください。~~→このStepは不要でした。Step2で用いるpkexecコマンドは、root権限ではなく、rootユーザーとしてコマンドを実行するためです。

#Step2. root権限rootユーザーでgdebiを起動するシェルスクリプトを作成する
/usr/local/binに、以下のシェルスクリプトを配置します。

/usr/local/bin/gdebi-gtk-exec
#!/bin/sh

pkexec "/usr/bin/gdebi-gtk" "$@"

pkexecコマンドでroot権限rootユーザーの認証をしてからgdebiを起動するスクリプトです。今回$@には、gdebiで開くファイル名が入ります。
さらに、つぎのコマンドで実行権限を与えます。

# chmod +x /usr/local/bin/gdebi-gtk-exec

以上で、ターミナルから$ gdebi-gtk-execを実行すると、root権限rootユーザーの認証を求める画面が表示されます。実際にrootパスワードを入力すると、root権限でrootユーザーとしてgdebiが立ち上がります。

#Step3. GUIで利用できるように、desktopファイルを改造する
Step2までではコマンドラインからしかgdebiを利用できません。そこで、ファイルマネージャーなどから利用できるようにするため、gdebiのdesktopファイルを改造します。
まず、以下のコマンドでシステムのdesktopファイルをユーザーのディレクトリにコピーします。

$ cp /usr/share/applications/gdebi.desktop ~/.local/share/applications/

つぎに、コピーしたdesktopファイルから、gdebi-gtk-execを実行するように、155行目付近のExec=gdebi-gtk %fをつぎのように変更します。

~/.local/share/applications/gdebi.desktop
Exec=gdebi-gtk-exec %f

以上でコマンドラインを使用せずに、Debian 10でgdebiを利用できるようになりました。

#変更後の挙動
Step1-3Step2・3の設定を行ったあとにgdebiがどのような挙動をするのかスクリーンショット付きで紹介します。以下はSRware Ironのインストール例です。
ファイルマネージャーに表示されているインストーラー"iron.deb"をダブルクリックします。

すると、下図のように、rootパスワードの入力が求められます。

ここで、rootパスワードを入力すると、gdebiがroot権限でrootユーザーとして起動します。

"パッケージをインストール"ボタンをクリックすると、インストールが始まります。
インストール中のスクリーンショットを撮り忘れてしまいましたが、しばらく待つとインストールが完了します。

#まとめ
以上がDebian 10でgdebiを使う方法でした。ファイルマネージャー上のdebファイルをダブルクリックするといきなりrootパスワードが要求されるのは少し怖いですが、自分で分かって使う分には問題ないと思います。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?