問題タブ [checkinstall]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - PythonRPMの作成
Python2.6.4用のRPMの作成について読んでいます。このページ:http ://docs.python.org/distutils/builtdist.htmlを使用して、現在のPythonのRPMを作成できると書かれていますpython setup.py bdist_rpm
。私が持っている質問は次のとおりです。
- Pythonインストールディレクトリにこのコマンドを入力する必要がありますか?
- このコマンドは、RPMにインストールしたすべてのモジュールをパッケージ化しますか?
- これはこれを行うための正しいコマンドですか?
- これを簡単にする他の提案はありますか?
さて、checkinstallを使用してこれを整理しました。
http://www.asic-linux.com.mx/~izto/checkinstall/checkinstall
からダウンロードしました。
次にパッケージをインストールしましたが、/usr/local/sbin/checkinstall
それを機能させるにはPATHを入力する必要がありました。次に、RPMディレクトリを実行するために次のコマンドを入力しました。
次にcd
、Pythonモジュールに入り、次のコマンドを入力しました。
checkinstall
このコマンドは、通常のmakeではなくsetup.pyを介してインストールするPythonライブラリとしてのコマンドを置き換えます。
その後、checkinstall
プロセスを実行しました。完成したRPMはに配置されまし/usr/src/redhat/RPMS/i386/
た。
注:これはLINUXREDHAT用です。
checkinstall - checkinstall を使用して .deb パッケージを作成中に次のエラーが発生する
checkinstall を使用して、ubuntu マシンで debian パッケージを準備しています。私はそれを準備するために次の手順を実行しました
最後にフォローしてもらいました。
linux - checkinstall によって呼び出されるスクリプトで mkdir -p が正しく機能しないのはなぜですか?
Quarterをコンパイルし、 checkinstallを使用してパッケージ化しようとしています。
標準の ./configure && make && sudo make install を実行すると、うまくいきます。
しかし、checkinstall を使用すると、mkdir -p
完全に正常に動作するはずのエラーが発生します。-p
失敗する方法は、オプションが指定されていない場合とまったく同じです。これは、私が使用している checkinstall コマンド ラインです。
これは失敗です:
これは、スクリプトの関連部分です。
なぜそれがあるのか わかり(テストに合格した場合、スクリプトは正しく動作するexec
ません-スクリプトの残りの部分( の後esac
)が決して実行されないことを保証しませんか?if
と想定するため、実際に実行すると終了できます。それ以外の場合は、スクリプトの残りの部分で適切な動作が実装されます。) また、なぜecho と次のこのスクリプトは 1 つの引数だけで呼び出されているため、どちらも同じものです。(トムはコメントで説明しました。)mkdir -p
mkdir -p
mkdir -p
"$*"
"$@"
echo
と の間に2 行を追加すると、次のexec
ように動作します。mkdir -p -- "$@"
echo "Now doing the exec mkdir..."
さて、 mkdir 行を2回実行すると機能するようになったという事実は、それが権限の問題ではないことを示しています(さらに、これは mkdir とは異なる診断を生成し、これは として実行されsudo
、実際には実際には機能して/var/tmp/...
いません/usr/local/...
)。最初の mkdir 呼び出し (私が追加したもの) が実際にはQuarter
ディレクトリだけを作成して救済し、2 番目の mkdir が実行されるとdevices
、Quarter ディレクトリが既に存在するため、サブディレクトリを作成できると思います。しかし、なぜ mkdir はそのように動作するのでしょうか???
私の回避策は、その mkinstalldirs スクリプトに何らかのパッチを当てることですが、なぜこれが壊れているのか非常に興味があります!
これは、Win7 の VirtualBox で実行されている Ubuntu 10.10 ゲストで、apt-get を介してインストールされた checkinstall バージョン 1.6.2 です。
編集: この環境で何が機能し、何が失敗するかを確認するためにいくつかのテストを行いました...
相対パス名で-p
は機能しますが、絶対パス名では機能しません。あるいは-p
、「chroot」ツリーの外部では (実際に chroot を使用している場合でも) 動作するが、内部では動作しないというのが正しい区別かもしれません。
また、失敗したにもかかわらず、最初のディレクトリ レベルを作成できることも確認しました。
まだまだ謎。
ruby - Checkinstall が Ruby 1.9.2 パッケージの作成に失敗する
Checkinstall が Ruby パッケージの作成に失敗し、次のエラーが表示されます。
問題の原因は何ですか? どうすれば解決できますか?
ありがとう。
Debian GNU/Linux 6.0.1;
ルビー 1.9.2;
1.6.2 のインストールを確認します。
makefile - checkinstall は役に立たない deb を作成しますか?
私は、文字通り Python スクリプトといくつかのヘルパー シェル スクリプトで構成される、ごく単純なコマンドライン プログラムを持っています。些細なことですが、このプログラムのパッケージ化について学びたいと思います。
集めたものから、configure/make/install ルートに進みました。構成するものも作成するものも何もなかったので、単純にインストール セクションだけで Makefile を作成しました。
この時点で、私のプログラムは sudo make install で正常にインストールおよび実行されます。
次に、次のようにcheckinstallを使用して deb ファイルを作成しようとします。
成功したと報告されるため、インストール部分を通過したように見えますが、その後失敗します。
プログラムはインストールされていますが、私が知る限り、この新しく作成された .deb ファイルは何もしません。dpkg -L my-program 生成のみ
手動で削除してdebファイルからインストールしても何も起こらないようです-実際にはどこにもファイルを配置しません。
だから、(1)私のアプローチに何か問題がありますか?(2) checkinstall の問題を解決するにはどうすればよいですか?
私はコードが得意ですが、パッケージ化/配布については何も知りませんでした。
python - 任意のプログラムがインストールされている場合、Pythonから確認する方法
私が探しているものは、この質問に近いと思います。
プログラムとサービスのインストールが必要なPythonスクリプトを(Windowsマシンで)実行しています。スクリプトを実行するマシンを制御できないため、プログラムとサービスがマシンにインストールされているかどうかをスクリプト内から確認する必要があります。
どうすればこれを行うことができますか?
編集:Pythonモジュールがインストールされているかどうかを確認するつもりはありません。インポートするだけで簡単にできることを知っています。プログラム(Mozilla Firefoxなど)がマシンにインストールされているかどうかを確認しようとしています
linux - ファイルシステムのアクティビティ、特に書き込みをサンドボックス化するにはどうすればよいですか?
Gentoo のportage には、ビルドおよびパッケージング ディレクトリ外への書き込みを防止してログに記録する機能があります。
Checkinstallは、書き込みを監視し、完了後に生成されたすべてのファイルをパッケージ化できます。
Autotools には、DESTDIR
通常、ほとんどのファイルシステム アクティビティを別の場所に転送できるようにするマクロがあります。
- Gentooサンドボックス方式の安全性を利用して、これを自分で行うにはどうすればよいですか?
- SELinux、rlimit、またはその他のリソース制限 API を使用できますか?
- C、Python からこれを行うには、どの API を使用できますか?
Update0
- 使用されるメカニズムには、ルート権限や関連する/永続的なシステム変更は必要ありません。これにより、ユーザーの作成と使用が除外されます
chroot()
。 - あなたが言及した API のドキュメントにリンクしてください。何らかの理由でそれらを見つけるのは非常に困難です。
アップデート1
- これは事故防止のためです。私は悪意のあるコードについては心配していません。
package - ソースDebianパッケージを作成する最も簡単な方法は何ですか?
hello.cがあるとします
およびMakefile
バイナリパッケージを取得する最も速くて簡単な方法は、checkinstallを使用することのようです。
同様のことを行う方法ですが、ソースパッケージの場合(ソースリポジトリに配置するか、「dpkg-buildpackage」を使用するため)?
公式テキストはかなり長いです:orig.tar.gz、changelog、control file ... checkinstallのようなものはありますが、ソースパッケージ用ですか?追加のボーナスは、依存関係も自動的に(少なくとも部分的に)把握する場合です。
makefile - パッケージ x にもある `/var/backups/infodir.bak' を上書きしようとしています
ソフトウェアをコンパイルするとき、私は常に. ./configure
&& make
&&を実行checkinstall -D make install
してソフトウェアをビルドします。
checkinstall を使用すると、エラーが発生するという問題が発生しました
「パッケージ libtasn1-3.2 にもある `/var/backups/infodir.bak' を上書きしようとしています」.
&& &&でlibtasn1-3.2も作成しました。./configure
make
checkinstall -D make install
ファイル/var/backups/infodir.bakを削除しようとしましたが、それでもエラーが発生します。この問題を解決する方法を知っている人はいますか?
bash - checkinstall で複数のパッケージの依存関係を管理するには?
しばらく使用してビルドしてきたパッケージがあり、checkinstall
それを自動化したかった (選択項目を入力したり、値を貼り付けたりする代わりに、コマンド ライン経由で値を渡します...)
これが checkinstall のバグかどうかはわかりませんが、コマンド ライン--requires
オプションを使用して複数のパッケージを含めるにはどうすればよいですか。パッケージの最小バージョン (例: ) --requires="libvte9 (>= 0.28.2)"
、または一度に複数のパッケージ (例:--requires "libvte9, libc6"
複数のパッケージのコマンド ライン引数で成功した人はいますか? 私は何か間違ったことをしていますか、それともこれはバグですか。
注: スクリプトを実行し、必要なオプション (10) を選択して、複数のパッケージと最小バージョン ( libvte9 (>= 0.28.2), libc6 (>= 2.13)
.また、これは、オプションを使用して debian パッケージをビルドする場合にも当てはまり-D
ます。