パッケージを閲覧できないので、私はルートではないことはわかっています。まず、これページを参照しましたが、うまくいきません。これらの指示に従った後、Unity から Sublime を開くとプロンプトが表示されますが、パッケージを参照することはできません。gksu subl
ターミナルで を使用して Sublime を開いても何も起こりません。実行すると開いsudo subl
てパッケージを参照できます。毎回 gksu ではなく sudo として Sublime を開いても問題ありませんか?
編集: 実際、Unity から Sublime を開くと、パスワードの入力を求められますが、その後はまったく開きません。
編集: gksudo subl
gksu と同じ効果があります。Web サイトから Sublime をインストールしました (Ubuntu 64 リンクをクリックしてダウンロードし、ダウンロードをクリックするとソフトウェア センターに移動しました)。「which subl」は/usr/bin/subl
、gksu がインストールされていることを返します。Glutanimate、そうです、それが私の言いたいことです。それで何が起こっているのか、わかりますか? sudo を使用した場合にのみ参照できます。
/usr/share/applications/sublime-text.desktop
:
[Desktop Entry]
Version=1.0
Type=Application
Name=Sublime Text
GenericName=Text Editor
Comment=Sophisticated text editor for code, markup and prose
Exec=gksu /opt/sublime_text/sublime_text %F
Terminal=false
MimeType=text/plain;
Icon=sublime-text
Categories=TextEditor;Development;
StartupNotify=true
Actions=Window;Document;
[Desktop Action Window]
Name=New Window
Exec=/opt/sublime_text/sublime_text -n
OnlyShowIn=Unity;
[Desktop Action Document]
Name=New File
Exec=/opt/sublime_text/sublime_text --command new_file
OnlyShowIn=Unity;
答え1
gksu
/ がgksudo
機能しない、または利用できない場合は、代わりに を使用できます。sudo -H
/sudo
の代わりにを使ってグラフィカル プログラムを実行する場合は、だけではなく(または) を使用する必要があります。gksu
gksudo
sudo -H ...
sudo -i ...
sudo ...
sudo -H subl
sudo -i subl
(プレーンなsudo ...
方法もこれらの方法も、パスワードの入力を求めるターミナルが必要なため、通常は Unity ダッシュからは機能しません。ただし、ターミナルからは実行できます。)
主な理由は悪いとみなされる通常のグラフィカルプログラムを実行する場合、環境変数をルートのホームディレクトリ()ではなく、非ルートの呼び出し元のホームディレクトリ( )に設定してsudo
アプリケーションを実行します。HOME
/home/username
/root
通常ユーザーに属するべき設定ファイルが、ルートに属するようにする(そしてアクセス不能)。
sudo
フラグを付けて実行すると-H
、代わりにルートのホーム ディレクトリが使用されるようになり、この問題が防止されます。
sudo -i
sudo -H
これに加えて、 はシミュレートされた root ログイン セッションでプログラムを実行します。 問題なく root としてグラフィカル プログラムを実行することだけが目的である場合、とのどちらか一方を優先する強い理由はわかりませsudo -i
ん。