2016-03-21 7 views
2

私の特定のケース多くのパッケージ(C++)をダウンロードしてインストールできるプログラムを書くには?

私は、グレースケール画像を取り込んで、解決のパスと同じ画像を出力のC++で迷路のソルバーを実装しようとしています。私はオンラインで見て、他のパッケージも必要とするOpenCVを使うべきであることを発見しました。私のプログラムのユーザーは、これらのパッケージが既にインストールされているかどうかをチェックするプログラムを実行できるようにしたい。必要なパッケージがインストールされていない場合は、これらのプログラムをマシンにインストールできます(Linux)。私の残りのプログラムはこれらのパッケージを使って迷路を解決します。

一般的なケース

がどのように実行されたことをプログラムを作成することができ、後で使用するプログラムに必要なパッケージをインストールしますか?これは可能ですか?私はそれについて読むことができるので、これが何か(それが存在する場合)と呼ばれるものですか?最後に、初年度のC++学生のチームにとってこれは信じられないほど難しいでしょうか?

ありがとう、私は自分自身で答えを探してみましたが、見つけられませんでした。

+0

なぜあなたはしたいですか? 「yum install A B C D E F」のように、あなたが必要とするものの要件を確実に列挙すれば十分です。 –

+4

ほとんどのLinuxベースのディストリビューションは、ソフトウェアリポジトリにOpenCVを持っており、完全な依存性の追跡機能も備えています。したがって、OpenCV開発パッケージをインストールすると、必要なパッケージがすべて自動的にインストールされます。 –

+0

本当にこれを自動的に行う必要がある場合は、ディストリビューションを理解し、関連する 'yum/apt-get/rpm install'を実行してください。 –

答えて

3

Linuxでは、この問題は通常、パッケージマネージャーによって解決されます。

異なるディストリビューションでは、異なるパッケージマネージャが使用されます。例えば、DebianベースのディストリビューションはDebianパッケージ(.debファイル)を利用しています。 RedHatとその子プロジェクトFedoraはRPMパッケージを利用しています(.rpmファイル)。あなたのディストリビューションに応じて、プロジェクトの適切なパッケージを作成し、パッケージの制御ファイルにその依存関係を列挙します。

Debianベースのディストリビューションを使用している場合は、Aptlyを強くお勧めします。これにより、ローカルリポジトリを作成し、既存のリポジトリをミラーリングし、AmazonのS3に独自のレポをホストすることができます。

これにはDockerも言及する必要があります。 Dockerは、パッケージマネージャとしても考えられます。これは、基本的にアプリケーションがオペレーティングシステムの設定をそのアプリケーションと一緒に運ぶことを可能にします。これにより、ドッカーが実行されるほとんどの場所にアプリケーションをデプロイできます。あなたがカメラのハードウェアに縛られている場合、いくつかの制限があるかもしれませんが、確かに検討する価値があります。また、Docker Hubを使って、あなたのクラスメート/生徒機にも自由に配布することができます。

希望に役立ちます!

関連する問題