Estoy configurando un servidor NAS con Git por primera vez, así que perdonen las preguntas novatos (también significa que estoy muy agradecido por cualquier explicación detallada que puedan darme, porque soy como un pez fuera del agua en esto). ).
Esto es lo que he hecho hasta ahora:
- Elemento de lista
- Configurar NAS
- Instalé Git, siguiendo estas instrucciones:http://www.wonko.de/2010/04/set-up-git-on-synology-nas.html(Lo hice hasta el final del paso 5)
- Tener git funcionando en mi computadora local (hice
git init
una confirmación inicial)
En este momento, estoy tratando de descubrir cómo realizar el paso 6 de esa guía (http://www.wonko.de/2010/04/set-up-git-on-synology-nas.html) para poder usar git clone
y git push
enviar confirmaciones de mi local a mi NAS.
Leí los comentarios debajo de esa publicación y probé lo siguiente:
Creé un archivo llamado
environment
guardado en mi carpeta de inicio local:.ssh/environment
con lo siguiente escrito allí:PATH=/opt/bin:/opt/sbin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/syno/sbin:/usr/syno/bin:/usr/local/sbin:/usr/local/bin
Inicié sesión en mi NAS usando
ssh://root@ipaddresstonas
y escribí:cd /usr/bin
ln -s /opt/bin/git*
Sin embargo, sigo obteniendo estos resultados:
Terminal en mi 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
Y cuando intento escribir $PATH
en mi 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
En mi 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
Además, solo una nota: estoy usando Synology DS212J, que creo que usa "BusyBox" si eso sirve de ayuda.
Estoy realmente confundido sobre cómo configurar git para que funcione con mi NAS... cómo puedo insertar mi NAS, cómo puedo clonar (o svn checkout
equivalente) en otra computadora, etc.
Respuesta1
La ruta en Unix es una variable que contiene las ubicaciones de varios programas.
Si escribe un comando como whoami
, el shell busca todas las carpetas enumeradas en su $PATH.
Continúe y escriba which whoami
su caparazón. Verás que whoami probablemente se encuentre en /usr/bin/whoami
.
Al tenerlo /usr/bin
en tu camino, puedes simplemente escribir whoami
en lugar de /usr/bin/whoami
. Es como tener un atajo.
El artículo que está leyendo muestra que git-upload-pack
se instala en una ubicación en la que el shell no busca automáticamente ejecutables. Debe agregar /opt/bin
y /opt/sbin
a su ruta para que el shell pueda 'encontrar'git-upload-pack
Hay varias formas de agregar un directorio a una ruta. Prefiero ponerlo en /etc/profile.d, sin embargo, parece que el cuadro ocupado no "busca" en ese directorio. En su lugar, será necesario agregarlo al archivo ~/.ssh/environment. El archivo de entorno se analiza cuando un usuario se conecta a través de ssh al servidor.
Paso 6
Utilice un editor de texto para editar el siguiente archivo (probablemente aún no exista)
/home/<yourUser>/.ssh/environment
Agregue la siguiente línea a /home//.ssh/environment
export PATH=$PATH:/opt/bin:/opt/bin
Luego edite el siguiente archivo (necesitará ser root para hacer esto)
/etc/ssh/sshd_config
En ese archivo encontrarás la frase.#PermitUserEnvironment no
Elimina el comentario (#) y cambia no a sí.
Reinicie su servicio ssh o simplemente reinicie todo el dispositivo.
Puedes probar que funcionó, pero ejecutando el siguiente comando
echo $PATH |grep '/opt/bin'
Si devuelve algo, entonces todo debería funcionar.
Respuesta2
configurar una clave rsa. Agregue la IP de origen a la lista de personas confiables en el control remoto. Genera una clave sin contraseña.Ejecute el demonio git en la otra máquina.
Pruebe su autenticación ssh
en la máquina cliente.