パッケージと.debsを説明するリンクの両方が見えます...わかりました...そしてtar.gzファイルが機能するためには多くのハッシュが必要です(例:Javaの新しい代替または、手動でファイルを/usr/local/bin(または別の場所に置きます。これは私が数時間検索した結果推論したものです)。パッケージがそれほどスマートであれば、パッケージや.debs / rpmsで利用できるLinuxアプリケーションはなぜそれほど少ないのですか?
私は新しいユーザーとして言います。専門家がもっとよく知っているでしょう。 (Eclipseのコンパイル可能なバージョンをダウンロードできますか?)netbeansやchromeと同様に、.sh
eclipseはシンプルで起動可能なディレクトリであり、Javaにはこのupdate-alternatives
ビジネスが必要ですが、Ubuntu / Debianの「プログラムリスト」(ただコマンドで登録)などに登録されていませんそうではありません。 (時々リポジトリでこれらのコンテンツが利用可能であることを知っていますが、ダウンロードページに正しい説明がない理由は混乱しています。)
簡単に言うと、tar.gzファイルをダウンロードまたはコンパイルした場合、それをシステムにどのように登録しますか?update-alternatives
コマンドで登録しているようですが、Ubuntuでは検索ボックスに表示されません。 Debian では、GNOME 2 ランチャーのショートカットを手動で追加できます。しかし、本当にどうすればいいですか?
編集する:
したがって、より新しいソリューションを試した後、「問題」を少し改善できます。
手動でインストールされたプログラムをどのように管理する必要がありますか? FirefoxとEclipseはこれまで私の唯一の例です(私はあまりダウンロードしていません)。どちらも私のお気に入りのボックスをすべて使用できます。しかし、どこにインストールする必要がありますか? Eclipseには独自のガイドラインがありますが、すべての「手動パッケージ」を同じ方法で実行したいと思います。
- 少し調査の終わりに私はこのプログラムを
/usr/local/bin
。 - ~からEclipseのインストール方法、ランチャーに何かを表示し、
xxx.desktop
その中にファイルを置く必要があります~/.local/share/applications/
。この.desktopファイルの名前は重要ですか? - 自動ツール(iFind
configure
またはunix/configure
File)を使用すると効果的です。CheckInstall
これらすべてを追跡するには、いくつかの研究ポイントを使用する必要があります。 update-alternatives
パスを登録するために使用する必要があります。したがって、Javaスレッド/usr/bin/java
、からまでのリンクを作成したようです/usr/lib/jvm/jdk...
。これらの「スタンドアロン」アプリケーション(EclipseやFirefoxなど)をインストールするときは、必ずそのアプリケーションに接続する必要がありますか/usr/bin/[app]
?主張1が本当なら、私は次のようにします。sudo update-alternatives --install "/usr/bin/[app]" "[app]" "/usr/local/bin/[app]" 1
このガイドラインは正しいですか/手動インストールを管理する良い方法ですか?従うべき他のステップがありますか?他の提案?
答え1
パッケージストアで多くのアプリケーションが利用できないのはなぜですか?
いくつかの理由があるかもしれません。
- 誰もアプリをパッケージ化することに気にしません。
- 誰もアプリケーションをパッケージ化できません(例:Oracleは、Javaを配布する唯一の会社であると主張しています。)。
- このパッケージは、ディストリビューションの価値と競合するライセンスに基づいてリリースされました。
- ...
理由は一つもありません。ディストリビューションのパッケージマネージャでお気に入りのアプリケーションを表示するには、各ケースを個別に処理する必要があります。開発者に連絡して(IRCチャンネルやメーリングリストなど)、パッケージングにどのように役立つかを尋ねてください。
圧縮パッケージをインストールする方法は?
tarball(.tar.gzパッケージ)にはすべてのコンテンツを含めることができます。実際に開いてみるまで、インストール方法を推測することはできません。同様に、各パッケージは異なる方法で処理する必要があります。
ドキュメントを見つけてください!(準)まともなソフトウェアパッケージは、アプリケーションのインストール方法に関する指示を提供します。最初の反応は、常にREADME、INSTALL、または同様の名前のテキストファイルを見つけることです。出版社のウェブサイトを確認してみることも役に立ちます。
すべてのパッケージが異なるため、世界中のすべてのタールボールを処理するための普遍的な方法はありません。これは、世界のすべての材料に適したレシピを尋ねるのと同じです。起こりませんでした。
システム、ディストリビューション、デスクトップ環境をよく理解すると役に立ちます。したがって、それが安心すれば、Linuxの世界で時間を費やすほど、状況はますます予測可能になります。
特別な場合:Autotools
プロジェクトが拡大するにつれて、ソースコードからバイナリ、システムの完全なインストールに簡単に移動する方法を提供する必要があります。そのため、必要なタスクを実行するスクリプトのコレクションである組み込みビルドシステムが付属しています。
Linux/オープンソース/無料ソフトウェアの世界では、1つのビルドシステムが広く採用されています。GNU自動ツール。 (オープン)ソースパッケージで作業したことがある場合は、Autotoolsを試してみた可能性があります。
最も簡単な場合は、autotoolsでパッケージ化されたアプリケーションをインストールする方法は次のとおりです。
./configure
:システムに対応するMakefileを生成するスクリプトです(可用性への依存関係を頻繁に確認します)。make
:以前に生成されたMakefileに基づいてソースコードをコンパイルします。make install
:バイナリを適切な場所にコピーし、シンボリックリンクを作成し、開発者が定義したその他の手順を実行します。
ノート
configure
スクリプトには、使用するコンパイラやターゲットディレクトリを定義する方法など、さまざまなオプションがあることがよくあります。柔軟性が必要な場合は考慮する価値があります./configure --help
。- Autotoolsだと確信し、よく知っていても、いつもまず、マニュアルをお読みください(お読み、インストールなど)。
質問に対する回答の更新
あなたが尋ねた質問には明確な答えはありません。ここにいる誰もが「良い習慣」が何であるかについてそれぞれの意見を持っているかもしれませんが、結局あなただけがあなたに合ったものを見つけることができます。簡単な答えがあったら、このような質問をしなかったでしょう。あなたのディストリビューションがこれに答えます。
そういえば個人的な意見がいくつかありますね。
/usr/local/bin
私のシステムは、パッケージマネージャによってインストールされたパッケージを維持します。私が手動でコンパイル/インストールしたものはすべて/opt
。xxx.desktop
一般的なGUIの問題は、使用しているデスクトップ環境によって異なります。あなたのシステムで動作する場合は非常に良いです。しかし、Unixで利用可能なすべての環境に一般化されるわけではありません。/usr/local/bin
利点はすでにあなたの中にあります道。私が提案したように、別のディレクトリを使用するには、/opt
そのディレクトリをPATHに含める必要があります。何をすべきかわからない場合は、端末を開き、端末で次のコマンドを実行します。 (これは最善の方法ではありませんが、システムがわからない場合は他に提案することはできません。)echo 'export PATH=$PATH:/opt' >> ~/.bashrc
答え2
私はあなたがそれを「登録」したいことが何であるかを自分で見つけなければならないと思います。そして。
説明すれば、スマートにしようとするわけではありません.では、ここで何について話していますか?
さまざまなディストリビューションに言及しました。リリース バイナリに設定されていない構成オプションのセットが必要なため、リポジトリで使用できるにもかかわらず、ソースからソフトウェアをビルドすることがあります。私が持っている唯一の問題は、パッケージが他のものの前提条件である場合は、そのパッケージを登録する必要があることです。包装システム誤って私が作成したディストリビューションの上に配布パッケージをインストールするのを防ぎます。 Fedora/rpmベースのシステムではrpm -i --justdb <package>
。より良い方法、前提条件を満たすふりをするダミーパッケージを生成します。これは、実際には .tar.gz ソースコードからパッケージを生成するための m0nhawk の提案と多少似ています。もっと単純なだけです(正直言って、m0nhawkの提案はまったく気に入らない)。
包装システムの問題に加えて、他の問題があるようです。デスクトップ環境(例:Gnome)について言及しましたが、それが何であるかは不明です。彼らは異機種なので、「Linuxでこれを行う方法」という質問に対する答えはまったくありません。 「Ubuntuでこれをどうするか」または「Ubuntuでこれを行うには」Gentooも同様です。 「gnome デスクトップでこれを行う方法」または「XFCE デスクトップでこれを行う方法」という質問があります。唯一の問題は、あなたが言及したランチャーの問題のようです。各DEが提供すると信じたいです。これを行う簡単な方法です(ただし、互いに異なるため、まったく同じではありません)。ファイル処理のデフォルト値を提供できない場合があります。質問は「コマンドをどのように登録しますか?」でした。私のファイルブラウザ」(Linuxのファイルブラウザも異機種コレクションです)。
その後、initシステム(systemdやupstartなど)によって管理されるサービスがあります。したがって、この質問は実際には、次に関連する一連の関連質問です。
- aptやyumなどのパッケージングシステム
- systemdやupstartなどのシステム初期化
- kde や unity などのデスクトップ環境
- nautilusやKonquerorなどのファイルブラウザ
- ????
単純な統合ソリューションが不可能な理由の1つは(たとえXDG規格 可能いくつかを言うと、「Linux」は単なる統合オペレーティングシステムではなく、大多数のユーザーがそのような方法を好むと思います。私はDEをまったく使用しないことが多く、DEに付属のファイルブラウザなどを使用しません。
もう一度言いますが、私は単なる恣意的なものではなく、この問題について本当に役に立てたいと思います。ここでいくつかの問題を解決するには、問題が何であるか、実際に関連するソフトウェアが何であるかをより正確に考える必要があります(「Linuxだけでなく」)。 ")")問題を解決したい場合。
答え3
全体的な問題の根本的な原因は、Linuxシステム自体に「レジストリ」が含まれていないためだと思います。実行ファイルは、何かを実行するために実際に必要なすべてです。実行可能ファイルへのフルパスを指定したくない場合は、ほとんどのシェルは環境の$ PATH変数にリストされているディレクトリでそのファイルを探します。リンクライブラリなどを使用すると、より複雑になる可能性がありますが、一般的に詳細を理解する必要はありません。
さまざまなLinuxディストリビューションは、さまざまなファイルシステムレイアウトとパッケージ管理システムに標準化されており、ここに問題があります。 Red Hat は以下を使用します。回転速度、Debians / Ubuntuはdebパッケージを使用します。アーチ私は私の道を行くしかも。ソフトウェアプロジェクトの観点から、ディストリビューションに含まれたくない場合、またはユーザーベースが完全に1つのディストリビューション内にある場合、または誰もが簡単にインストールできるように設計された商用製品でない限り、おそらく構築を開始したいと思います。唯一のことは、さまざまな正式な注文することです。
実際に構築されたソースtar.gzは、gcc
おそらく一般的な「Linuxパッケージ」のための最高の定義です。一部のGNUユーティリティとGCCを含むLinuxカーネルは、入手可能なさまざまなLinuxベースのオペレーティングシステム間の共通の分母です。
私はあなたが探している特定のものではないので、「小さすぎる」がパッケージで提供されるとは言わないでしょう。 (または、サイト運営者はこれらのパッケージの乱れをすべて無視することを選択することもできますか?Chromeおよび自己更新プロセスと同じです。)だからたくさんバッグについてそのためにたくさんその他パックシステム~のため構造が多すぎるあまりにも多くのフリーソフトウェアについて面白くない。
Linuxディストリビューション用のパッケージとして使用できないアイテムをビルドするか、パッケージとしてビルドするオプションをサポートしている場合は、それを実際のパッケージとして「登録」する最善の方法は、そのパッケージをビルドすることです。これらのファイルは選択したパッケージシステムに基づいており、その方法でインストールする必要があります。魂になってあなたのパッケージング作業をプロジェクトに貢献し、他の人が恩恵を受けるようにしましょう。
持つ各種ガイドネットワークについてパッケージビルド。ダーバンそれらの一つになる。
コンパイルされたパッケージのみを実行したい場合は、たぶんあなたのバイナリパスを追加しますか$PATH
?
別のことをしていたら、それは何でしたか?
答え4
~/bin/
代わりにシンボリックリンクをかけることもできることを付け加えたいです/usr/bin
。*.desktop
ファイルは~/.local/share/applications/
またはに配置できます/usr/share/applications/
。私は自分のコンピュータを使って、できるだけシステムファイル(私のホームディレクトリ以外のすべてのファイル)に直接触れるのを避けたいと思います。
もちろん、コンテンツを「ホーム」に入れても他のユーザーには表示されません。
~/.profile
これはdebian wheezyのデフォルト設定です:
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
PATH="$HOME/bin:$PATH"
fi