Estou configurando um servidor NAS com Git pela primeira vez, então, por favor, perdoe as perguntas noobish (isso também significa que estou muito grato por qualquer explicação detalhada que você possa me dar, porque sou uma espécie de peixe fora d’água nisso ).
Aqui está o que fiz até agora:
- Item da lista
- Configurar NAS
- Git instalado, seguindo estas instruções:http://www.wonko.de/2010/04/set-up-git-on-synology-nas.html(Fiz isso até o final do passo 5)
- Faça o git trabalhar no meu computador local (fez
git init
e commit inicial)
No momento, estou tentando descobrir como executar a etapa 6 desse guia (http://www.wonko.de/2010/04/set-up-git-on-synology-nas.html) para que eu possa usar git clone
e git push
enviar commits do meu local para o meu NAS.
Eu li os comentários abaixo daquela postagem e tentei o seguinte:
Criei um arquivo chamado
environment
salvo na minha pasta pessoal local:.ssh/environment
com o seguinte digitado lá:PATH=/opt/bin:/opt/sbin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/syno/sbin:/usr/syno/bin:/usr/local/sbin:/usr/local/bin
Entrei no meu NAS usando
ssh://root@ipaddresstonas
e digitei:cd /usr/bin
ln -s /opt/bin/git*
No entanto, continuo obtendo estes resultados:
Terminal na minha máquina local:
$ git remote -v
nas ssh://[email protected]/volume1/path/to/test (fetch)
nas ssh://[email protected]/volume1/path/to/test (push)
$ git push nas master
[email protected]'s password:
sh: git-receive-pack: not found
fatal: The remote end hung up unexpectedly
E quando tento digitar $PATH
na minha máquina local:
$ $PATH
-bash: /usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/usr/local/git/bin: No such file or directory
No meu NAS:
nas> cd /volume1/path/to/test
nas> ls
test.git
nas> $PATH
-sh: /opt/bin:/opt/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/syno/bin: not found
Além disso, apenas uma observação: estou usando o Synology DS212J, que acho que usa "BusyBox", se isso ajudar.
Estou realmente confuso sobre como configurar o git para funcionar com meu NAS... como posso enviar para meu NAS, como posso clonar (ou svn checkout
equivalente) em outro computador, etc.
Responder1
O caminho no Unix é uma variável que contém as localizações de vários programas.
Se você digitar um comando como whoami
, o shell examinará todas as pastas listadas em seu $PATH.
Vá em frente e digite which whoami
seu shell. Você verá que whoami provavelmente está localizado em /usr/bin/whoami
.
Por ter /usr/bin
no seu caminho, você pode simplesmente digitar whoami
em vez de /usr/bin/whoami
. É como ter um atalho.
O artigo que você está lendo mostra que git-upload-pack
é instalado em um local onde o shell não procura automaticamente por executáveis. Você precisa adicionar /opt/bin
e /opt/sbin
ao seu caminho para que o shell possa 'encontrar'git-upload-pack
Existem várias maneiras de adicionar um diretório a um caminho. Eu prefiro colocá-lo em /etc/profile.d, porém parece que a caixa ocupada não 'parece' nesse diretório. Em vez disso, ele precisará ser adicionado ao arquivo ~/.ssh/environment. O arquivo de ambiente é analisado quando um usuário se conecta via ssh ao servidor.
Etapa 6
Use um editor de texto para editar o seguinte arquivo (provavelmente ainda não existe)
/home/<yourUser>/.ssh/environment
Adicione a seguinte linha a /home//.ssh/environment
export PATH=$PATH:/opt/bin:/opt/bin
Em seguida, edite o seguinte arquivo (você precisará ser root para fazer isso)
/etc/ssh/sshd_config
Nesse arquivo, você encontrará a frase#PermitUserEnvironment no
Remova o comentário (#) e altere não para sim
Reinicie seu serviço ssh ou apenas reinicie todo o dispositivo.
Você pode testar se funcionou, mas executando o seguinte comando
echo $PATH |grep '/opt/bin'
Se retornar algo, então tudo deverá funcionar.
Responder2
configurar uma chave rsa. Adicione o IP de origem à lista de confiáveis no controle remoto. Gere uma chave sem senha.Execute o daemon git na outra máquina.
Teste sua autenticação ssh
na máquina cliente.