個人プログラムとスクリプトの配布

個人プログラムとスクリプトの配布

git便利なプログラムとスクリプトを含むプロジェクトがあります。階層は次のとおりです。

$ git clone https://github.com/myaccount/myutils.git

$ tree myutils
.
├── bash
│   ├── do-this.sh
│   ├── do-that.sh
│   ├── functions-to-source.sh  # Contains useful functions that will be sourced by other scripts.
│   ├── tests
│   │   ├── bin
│   │   └── command.ext1.ext2.ext3
│   └── todo
├── python
│   ├── notes
│   └── package1
│       ├── module1.py
│       └── module2.py
└── c
    ├── bin
    ├── build
    ├── doc
    ├── include
    ├── lib
    ├── Makefile
    ├── src
    └── test

各フォルダをプロジェクトとして考えることもできます。ファイルをどのようにインストールする必要がありますか/usr/local?私はそれらをにインストールしたいと思います。コンパイルするものを/usr/local入れるべきだと読んでいます。/usr/local/srcここではCプロジェクトだけをコンパイルすればいいのですが、各サブフォルダ(bin、lib、src)の内容をそのサブフォルダにコピーする必要がありますか/usr/local?コンパイルする必要のないスクリプトはどうですか?各スクリプトをコピーする必要がありますか/usr/local/bin?それともシンボリックリンクを作成しますか?プロジェクト全体はどうですか?特定のフォルダに移動する必要がありますか?良い(ベスト?)展開方法について詳しく知りたいです。

ベストアンサー1

使用することをお勧めしますGNUストー/optサイト固有のソフトウェアのディレクトリの下に階層を作成します(参照:ファイルシステム階層標準、一部のサイトでは/sw代わりに使用しますが)。これにより、あなたのもの

  1. [使用/opt] ...パッケージマネージャがインストールしたものと競合しません。
  2. [使用stow]...である本物取り付け/取り外しが簡単です。

の場合はstowディレクトリを作成します/opt/stow

その下には、個々のプロジェクトごとに完全な下位階層が作成されます。

  • /opt/stow/project-1/{bin,lib,man}
  • /opt/stow/project-2/bin
  • /opt/stow/project-3/{bin,fun,share/examples}funシェル関数を持つソース可能なシェルコードの場合)
  • など。

Cソースコードをそこに置かず、ツールを使用するために必要なものだけを入れてください。

それから:

$ cd /opt/stow
$ stow project-1
$ stow project-2
$ stow project-3

各呼び出しは、stow正しい場所を指すシンボリックリンクでディレクトリを埋め、/opt実行可能ファイルが次のように提供されるようにします。/opt/stow/project-1/bin そして /opt/stow/project-2/bin簡単にアクセスできます/opt/bin

それからそれをあなたの/opt/binものに追加してくださいPATH

到着削除たとえば、次のようにproject-1なります/opt

$ cd /opt/stow
$ stow -D project-1

/optこれにより、階層からすべてのポインティングリンクが削除されますが、/opt/stow/project-1内容はそのまま残ります/opt/stow/project-1

最初のプロジェクトの新しいバージョンがある場合は、次のことができます。

$ # (having un-stowed project-1, and still in /opt/stow ...)
$ mv project-1 project-1.old
$ cp $HOME/path/project-1 ./
$ stow project-1

stow-v実際に何が起こっているかを確認するには、フラグと一緒に使用してください。

デフォルトでは、GNU Stowを使用すると、アプリケーションを別々にインストールしたままにするのが簡単です。分離。私は常にコードをコンパイルしてインストールするためにそれを使用します(例:withを$HOME/local使用--prefix)。./configure削除操作が簡単になります。

おすすめ記事