linux - libgnome - gitkraken software
Error al usar Git credential helper con gnome-keyring como Sudo (3)
A veces necesito ejecutar sudo git clone ya que a veces el directorio donde necesito hacer un clon lo requiere. Cualquier ayuda sería apreciada
La carpeta en la que intenta clonar el repositorio fue creada por root, por lo que no tiene permiso para escribir o crear una carpeta debajo de ella, a menos que sea root (
sudo
), configure los permisos (
chmod
o
chown
) y podrá clonar en la carpeta.
chmod 755 /path
Estaba buscando una forma de almacenar credenciales de forma segura mientras me conectaba a nuestro servidor Git que usa SSL. Encontré esta sugerencia de @ james-ward (la única edición que hice fue que actualicé nuestra configuración "sistema" en lugar de nuestra configuración "global" para Git ( https://stackoverflow.com/a/14528360/6195194 )
sudo apt-get install libgnome-keyring-dev
cd /usr/share/doc/git/contrib/credential/gnome-keyring
sudo make
git config --system credential.helper /usr/share/doc/git/contrib/credential/gnome-keyring/git-credential-gnome-keyring
Entonces puedo correr
git clone https://ipaddress/git/repo.git
y el asistente de credenciales almacenará mis credenciales, sin embargo, cuando ejecuto lo siguiente:
sudo git clone https://ipaddress/git/repo.git testfolder
me da el siguiente error
** (process:3713): CRITICAL **: Error communicating with gnome-keyring-daemon
A veces necesito ejecutar sudo git clone ya que a veces el directorio donde necesito hacer un clon lo requiere. Cualquier ayuda sería apreciada.
Versiones que estoy usando: - git versión 1.9.1 - Ubuntu Server 14.0.4
¡Gracias de antemano! -Richard O.
Además del uso de sudo, tenga en cuenta que en 2016,
libgnome-keyring
es específico de GNOME y ahora está en desuso (desde
enero de 2014, en realidad
).
Git 2.11+ (Q4 2016) incluirá un nuevo asistente de credenciales usando
libsecret
.
Ver
commit 87d1353
(09 Oct 2016) por
Mantas Mikulėnas (
grawity
)
.
(Fusionada por
Junio C Hamano -
gitster
-
en
commit bfe800c
, 26 oct 2016)
Se ha agregado a
contrib/credential/
un nuevo asistente de credenciales que habla a través de " libsecret " con implementaciones de la API del servicio secreto XDG.utiliza
libsecret
que puede admitir otras implementaciones de la API del servicio secreto XDG.
-
Puede instalar
libsecret
y las bibliotecas de desarrollo con:sudo apt-get install libsecret-1-0 libsecret-1-dev
-
Entonces necesita construir el administrador de credenciales
cd /usr/share/doc/git/contrib/credential/libsecret
(copie la carpeta credential / libsecret de la source , si no se instala automáticamente)sudo make
-
Finalmente, debe apuntar git al archivo recién creado en su configuración:
git config --global credential.helper /usr/share/doc/git/contrib/credential/libsecret/git-credential-libsecret
Como señaló mati865 en los comentarios :
Cabe señalar que algunas distribuciones como Arch y Fedora proporcionan ayudantes disponibles como binarios y fuente.
- Binario Libsecret en Arch:
/usr/lib/git-core/git-credential-libsecret
, y- Binario Libsecret en Fedora:
/usr/libexec/git-core/git-credential-libsecret
.
Usar
sudo
ejecuta el comando como root.
Es como pedirle a su administrador de sistemas, si tiene uno, que ejecute un comando para usted.
El usuario
root
no
está destinado a hacer nada relacionado con el desarrollo y, por lo tanto,
git
no
debe usarse como root.
Una vez que ejecuta un comando como otro usuario (root o cualquier otro), se espera que este otro usuario no pueda comunicarse normalmente con su usuario habitual (en particular, no encuentra aquí su gnome-keyring-daemon).
Entonces, la respuesta es: "no hagas eso".
Si realmente necesita clonar en un directorio particular, otórguese permisos en ese directorio como se sugiere en la respuesta de CodeWizard.
En realidad, si necesita clonar en un directorio donde no tiene permiso, pregúntese si está haciendo algo mal: en principio, esto no debería suceder (supongo que: ya usó demasiado
sudo
en el pasado y esta es la razón por la que tiene directorios um-escribibles aquí y allá).