web-dev-qa-db-ja.com

アプリケーション開発-基本的な質問方法

Ubuntuアプリの対決が終わった後、Windows用にプログラムされたツールのいくつかをソフトウェアセンターに持ち込みたいと思います。 Linuxのプログラミングは初めてなので、まだいくつか質問があります。

1)いくつかの依存関係があります(例: [〜#〜] blast [〜#〜] )。ツールとともに自動的にインストールされる依存関係をQuicklyで構成できることを読みました。ファイル、リンク、ツールの名前などに何を追加する必要がありますか?例は素晴らしいでしょう。

2)これらの依存関係により、いくつかの(大きな)出力ファイルが生成されます。そのようなファイルはどこで作成され、それらを解析するためにアプリケーションフォルダーに移動する必要がありますか?

3)私のアプリケーションはいくつかのファイルを作成します。すばやく作成したアプリのフォルダー構造にそれらを保存するのに最適な場所はどこですか?ファイルの読み取りと書き込みのアクセシビリティはどうですか?

4)私が注意しなければならない、またはWindows OSとは異なるその他のヒントや提案はありますか?

どんな助けでも大歓迎です!

2
snowflake

私は Wallch の開発者(およびパッケージャー)です。これはC++アプリケーションであるため、Quicklyでビルドおよびパッケージ化されていません。

そのため、私の回答には、(私が知る限り)どのような場合でも適用される(すべき)質問に関する一般的な情報が含まれます。

今、あなたの質問に答えます:

(1)

アプリケーションの依存関係として設定できるのは、Ubuntuのデフォルトリポジトリにあるものだけです。 PPAなどからの依存関係を含めないことができます。依存関係はdebian/controlファイルで追加できます。私のアプリケーションのdebian/controlファイルの例は次のとおりです: paste.ubuntu.com/1113694

ご覧のとおり、2つの「依存」フィールドがあります。「ビルド-依存」では、アプリケーションのビルドに不可欠なものを指定する必要があります。 Quicklyがこのフィールドに自動的に入力する必要があると確信しています。アプリケーションの実行に重要なその他のパッケージは、[依存]フィールドの下に一覧表示されている必要があります。これは、追加の依存関係を指定する必要があるということです。指定する必要があるのは、ユーザーがダウンロードしてインストールする必要のあるパッケージ名です(もちろん、このプロセスは自動です)

(2)

あなたの質問から私が理解している限り、依存関係は、大きな出力ファイルを実行および生成できる別個のプログラムです。さて、それは本当にそれらのファイルがどこに保存されているかに依存します。私はそれを言うでしょう:

  1. アプリケーションがこれらの大きな出力ファイルを間接的に作成する場合は、好きな場所に保存するように選択できます

  2. ユーザーがこれらのファイルを個別に作成する場合は、アプリケーション内からユーザーにこれらのファイルの1つを選択して処理させることができます。

それは、これらのファイルがどのように作成されているか、そしてそれらがアプリケーションと何の関係があるかに本当に依存します。

いくつかのファイルを作成した後、それらをアプリケーションで処理する場合は、/ tmpディレクトリを使用する必要があります。依存関係プログラムを実行し、それをガイドしてファイルを/ tmpに生成し、プログラムにそこからファイルを読み取って解析させます。

(3)

私の知る限り(この特定のコンテストにも参加したため)、Quicklyが作成する構造は、/ opt/extras.ubuntu.com/programnameの下にあり、ユーザーには書き込み権限がありません。これは、ユーザーが通常アプリケーションを開き、アプリケーション内から/opt/extras.ubuntu.com/programnameの下にプログラムのファイルを保存することを選択した場合、ユーザーはそれらのファイルを保存できないことを意味します。代わりに、root権限でアプリケーションを実行する必要がありますが、これは一般的に推奨されていません。

繰り返しますが、それはそれらのファイルが何のためにあるかによります。これらのファイルはユーザーから読み取り可能ですか、それともアプリケーション内からのみ使用できますか(構成ファイルなど)?前者が当てはまる場合は、それらのファイルを保存する場所をユーザーに選択させる必要があります。後者が当てはまる場合は、それらのファイルを〜/ .config/ProgramName /の下に配置する必要があります。ディレクトリ〜/ .config/ProgramNameは、すべてのアプリケーションが構成ファイルを保存するディレクトリです。

コメントからのリクエストが増えたら編集

一般的に、あなたの機会に、あなたは以下をするべきです:

  1. プログラムは、ユーザー入力に応じてファイルを生成します(ファイルは再利用される可能性があり、削除しないでください。その結果、〜/ .config/ProgNameになります)
  2. 依存しているツールは、これらのファイルを(〜/ .config/ProgNameから)読み取り、他のいくつかのファイルを生成します(結果は/ tmpになります)
  3. プログラムは/ tmpから(ツールから)生成されたファイルを取得し、計算/描画などを行います...アプリケーションが/ tmpの下の最終ファイルに対して行う必要があることを実行した後、それらを削除するとよいでしょう。

構成フォルダーで読み取り/書き込み権限があるかどうかについては、ユーザーは〜/(ホームディレクトリ)の下のすべてで完全な読み取り/書き込み権限を持っているため、〜/ .config /の下のすべても彼に属します。ユーザーは/ tmpの下にも読み取り/書き込み権限を持っていることに注意してください。

ヒント:mktempコマンドを使用して、/ tmpの下にランダムな名前の一時ファイルを生成できます。

2
hytromo