バイナリを正しく接続するにはどうすればよいですかstow
(おそらくマニュアルページも)。
stow
GNUを使用して自分のコンピュータのローカルインストールを管理したいと思います。しかし、stow
シンボリックリンクバイナリだけでなく、プログラムフォルダ内のすべてのファイルも同様です。これまで私がしたこと:
- 拡張stow-ignoreファイルを生成しました。
- バイナリを除くすべてのファイルにサブフォルダを使用
src/
し、Makefileを手動で変更してbin/
サブフォルダを作成します。次に、リンクされたlocal/src/
フォルダを削除します。
より良い方法があるべきだと思いましたが、間違ってstow
使用していました。
はい
フォルダ構造
~home/
|~local/
|+bin/ <-- binarys should go here
|+share/ <-- man page
|~stow/
|-.stowrc
|~dwm-6.0/
|-Makefile
|-dwm.c
|-dwm.h
|-dwm
|-config.mk
|-README
|~hub-1.11/
|~bin/
|-hub
|+etc/
|+feature/
|+githook/
|+lib/
|-Gemfile
|-Rakefile
|-hub.gemspec
stow/
ここからフォルダタイプに入ります
stow dwm-6.0
次に、リンクをブックマークに追加します。みんなlocal/
バイナリファイルをフォルダに配置するのではなく、ファイルをフォルダdwm
に配置しますlocal/bin/
。これでフォルダMakefile
を作成しdwm-6.0/bin/
、バイナリをフォルダに移動するように変更できます。これにより、少なくともstow
接続されますが、他のすべてのファイルはまだ接続されます。dwm
local/bin/
local/
以下も同様ですhub
。
[9962]../stow:$stow hub-1.11.1
Loading defaults from .stowrc
stow dir is /home/myusername/local/stow
stow dir path relative to target /home/myusername/local is stow
Planning stow of package hub-1.11.1...
LINK: man => stow/hub-1.11.1/man
LINK: test => stow/hub-1.11.1/test
LINK: hub.gemspec => stow/hub-1.11.1/hub.gemspec
LINK: script => stow/hub-1.11.1/script
LINK: etc => stow/hub-1.11.1/etc
LINK: lib => stow/hub-1.11.1/lib
LINK: hub => stow/hub-1.11.1/hub
LINK: bin/hub => ../stow/hub-1.11.1/bin/hub
LINK: git-hooks => stow/hub-1.11.1/git-hooks
LINK: Rakefile => stow/hub-1.11.1/Rakefile
LINK: Gemfile => stow/hub-1.11.1/Gemfile
LINK: features => stow/hub-1.11.1/features
Planning stow of package hub-1.11.1... done
Processing tasks...
Processing tasks... done
これでファイルを使用するのではなく、別のフォルダにファイルをリンクすることもできますstow
。man
share/
===
.stow-グローバル-無視
# Comments and blank lines are allowed.
RCS
.+,v
CVS
\.\#.+ # CVS conflict files / emacs lock files
\.cvsignore
\.svn
_darcs
\.hg
\.git
\.gitignore
.+~ # emacs backup files
\#.*\# # emacs autosave files
.*\.c # c src files
.*\.cc # c++ src files
#.*\.\d # compile temporary files
#.*\.\d\..* # compile temporary files
.*\.o # object files
.*\.h # include files
.*\.info
.*\.mk # make configs
.*\.swp # vim temp buffer file
.*\.lock # vim temp buffer file
.*\.md # mark down
.*\.yml # YAML
#.*\.gemspec # gem file
#.*\.rb # ruby file
#.*\.sh # shell file
#.*\.feature # shell file
README.*
LICENSE
FAQ
LEGACY
TODO
Makefile
.stowrc
--dir=/home/myusername/local/stow
--target=/home/myusername/local
答え1
1つの方法は次のとおりです。ローカル無視リスト、パックあたり1個です。
しかし、私はあなたのアプローチが根本的に間違っていて、あなたの人生を不必要に困難にしていると信じています。問題は、ビルド時に必要なファイルと実行時に必要なファイルを区別できないことです。このようなディレクトリ~/local/stow/dwm-6.0/
はパッケージディレクトリ含める必要があります設置写真、ビルド時にのみソースコードやその他のリソースを使用するのではありません。
正しいワークフローは次のとおりです。
- Stowが完全に無視するディレクトリ(たとえば
~/src
)にソースコードをダウンロードします。 - ソースからビルド
~/local/stow/dwm-6.0/
(マニュアルには、これを達成する方法に関する多くのヒントがあります。) - 実行時に必要なディレクトリファイルのみが含まれていることを確認してください(
~/local/stow/dwm-6.0/
以下のbin/
ファイルなどman/
)。 stow dwm-6.0
答え2
バラよりB.コネス'2014年10月10日ブログエントリ「GNUリポジトリインクルードファイル」。要約すると、正規表現は次のようになります。
^((?!(\/)bin|include|lib|lib64|local|sbin|share|tmp).)*$
対応するディレクトリ(bin、includeなど)のみが「のみ」グローバル無視リストに保存されます。
答え3
ソースコードを含むディレクトリを置くようです。
configure
(またはソフトウェアが使用するビルドシステム)を使用し、stow
ディレクトリの下にインストールプレフィックスを設定します。インストールされたプログラムを実行してmake
保存します。make install
これstow
を使うべきです...