私は RoboJournal と呼ばれる Qt ベースの C++ プログラムに取り組んできました。スペル チェックの目的で Hunspell を使用します。現在、独自の辞書ファイル (en_US.dic) をユーザーのホーム フォルダー (つまり ~/.robojournal/en_US.dic) に自動的にインストールします。これは、すぐに使用できる互換性のある辞書を提供しない Windows などの OS ではそのままで問題なく動作しますが、修正したい設計上の問題があります。
Linux では、en_US.dic のインスタンスがいくつかあります (最も顕著なのは /usr/share/hunspell/en_US.dic にあります)。このコピーは明らかに、Hunspell を使用するすべてのプログラム間で共有されることを意図しています。独自のコピーに依存する代わりに可能です。ただし、/usr/share/hunspell/ のコピーを変更するにはスーパーユーザー権限が必要です。これは、ユーザーがそこから読み取ることができることを意味しますが、プログラムがスーパーユーザー権限で実行されていない限り、またはファイルを chmod して全員が書き込みできるようにしない限り、単語を追加することはできません。この問題により、/usr/share/hunspell/en_US.dic のコピーの有用性が大幅に低下します。
ユーザーがスーパーユーザー権限を持たずに /usr/share/hunspell/en_US.dic ファイルを変更する方法や、最初にファイルを chmod する必要がない方法はありますか? 私の Debian パッケージ管理者は、私のアプリは可能な限りグローバル システム リソースを使用するべきだと言いました。