WineからrootとしてPythonを実行することはできません。

WineからrootとしてPythonを実行することはできません。

Wine 7にPython 3.10.8をインストールしました。 pipを使用してモジュールをダウンロードするには、インターネットにアクセスするためのワインが必要です。ただし、sudoを使用しないと、ワインはインターネットにアクセスできません。以下を実行すると、 wine ping google.compingテストは失敗します。

ali@frozen-flower:~$ wine ping google.com
Pinging google.com [216.239.38.120] with 32 bytes of data:
PING: transmit failed. General failure.
PING: transmit failed. General failure.
PING: transmit failed. General failure.
PING: transmit failed. General failure.

Ping statistics for 216.239.38.120
        Packets: Sent = 4, Received = 0, Lost = 4 (100% loss)

sudoの助けを借りて、すべてがうまくいきます。

ali@frozen-flower:~$ sudo wine ping google.com
Pinging google.com [216.239.38.120] with 32 bytes of data:
Reply from 216.239.38.120: bytes=32 time=70ms TTL=102
Reply from 216.239.38.120: bytes=32 time=89ms TTL=102
Reply from 216.239.38.120: bytes=32 time=73ms TTL=102
Reply from 216.239.38.120: bytes=32 time=71ms TTL=102

Ping statistics for 216.239.38.120
        Packets: Sent = 4, Received = 4, Lost = 0 (0% loss)
Approximate round trip times in milli-seconds:
        Minimum = 70ms, Maximum = 89ms, Average = 76ms

問題は、sudoを使用してWineでPythonを実行しようとすると、次のエラーが発生することです。

ali@frozen-flower:~$ sudo wine python
Application could not be started, or no application associated with the specifie
d file.
ShellExecuteEx failed: File not found.

sudoを使用しない場合、Pythonが実行されます。

ali@frozen-flower:~$ wine python
Python 3.10.8 (tags/v3.10.8:aaaf517, Oct 11 2022, 16:50:30) [MSC v.1933 64 bit (
AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>

私のUbuntuのバージョンは22.10です。

この問題をどのように解決できますか?

答え1

いくつかの調査の最後に問題の原因を見つけました。 Wineをインストールするときは、winecfgコマンドを使用して構成する必要があります。を使用せずにこのコマンドを実行すると、sudoWineは.wineその中にフォルダ(たとえば)を作成しますが、/home/$user実行するとそのフォルダの下にsudo winecfgフォルダ.wineが作成されます/root。これは、コンピュータに2つのWineインスタンスがあることを意味します。一部のサイトでWineを実行すると、sudo一部のアプリケーションがインターネットに接続できることがわかりましたsudo。を作らなければならないことを意味する)。ルートでなければ生成できないソケットです。したがって、使用している Wine インスタンスに Python をインストールする必要があります/root/.wine(つまり、Run Python インストーラを使用sudo wine)。

関連情報