O que devo fazer para ter o stow
apenas vinculando os binários (e talvez as man pages) corretamente?
Eu quero usar o GNU stow
para gerenciar instalações locais na minha máquina. No entanto, stow
simplesmente não vincula simbolicamente o binário, mas todos os arquivos na pasta do programa.
O que eu fiz até agora:
- criou um arquivo stow-ignore estendido
- use uma subpasta
src/
em que todos os arquivos, exceto o binário, vão e alteram manualmente o Makefile para criar uma subpasta bin/
. Em seguida, exclua a pasta local/src/
vinculada
Eu acho que deve haver uma maneira melhor e estou usando stow
errado.
Exemplo
Estrutura das pastas
~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
A partir daqui, eu iria para o tipo de pasta stow/
stow dwm-6.0
Em seguida, armazene os arquivos all na pasta local/
, em vez de apenas o binário dwm
na pasta local/bin/
. Agora posso alterar o Makefile
para que ele crie uma pasta dwm-6.0/bin/
e mova o binário para lá. Então, stow
, pelo menos, vinculará dwm
a local/bin/
, mas todos os outros arquivos também serão vinculados a local/
.
O mesmo vale para 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
Agora, stow
vincula os arquivos man
a uma pasta separada, em vez de usar share/
===
.stow-global-ignore
# 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