Entendendo as implicações do sudo -u -H

2

Estou tentando instalar o gitlab em este guia no Ubuntu 14.04 Server. Também vale a pena mencionar que estou atrás de um proxy http. Estou tendo problemas com essa linha em particular:

sudo -u git -H git clone https://gitlab.com/gitlab-org/gitlab-ce.git -b 6-9-stable gitlab

Eu tenho hhtp_proxy conjunto de variáveis de ambiente, mas de acordo com algumas leituras sobre isso eu fiz você precisa definir detalhes de proxy para git independentemente, emitindo o seguinte comando:

git config --global http.proxy http://some.proxy.com:8080

Então, com esse conjunto, tentei entender a sintaxe sudo -u <user> -H <command> .

A partir da leitura da página man do sudo para os sinalizadores -u -H, -u significará que o comando será executado como o usuário do git. -H define a variável de ambiente HOME para o homedir do usuário de destino. Isso tudo faz sentido, já que o usuário do git deve possuir o serviço gitlab.

git clone <url to repo> -b 6-9-stable gitlab irá baixar o repositório na URL especificada, atribuí-lo a uma nova ramificação chamada 6-9-stable e colocar todo o conteúdo da repo no diretório gitlab.

O problema é quando eu corro:

'sudo -u git -H git clone https://gitlab.com/gitlab-org/gitlab-ce.git -b 6-9-stable gitlab

A conexão falha com a seguinte saída:

Cloning into 'gitlab'...
fatal: unable to access 'https://gitlab.com/gitlab-org/gitlab-ce.git/': Failed to connect to gitlab.com port 443: Connection timed out

Eu também tentei descartar os s em https, já que eu sei que a porta 443 é sinônimo de SSL / TLS, mas eu ainda recebo a mesma saída ... que eu realmente não entendo.

No entanto, se eu apenas executar:

git clone https://gitlab.com/gitlab-org/gitlab-ce.git -b 6-9-stable gitlab

O repo faz o download bem. Agora eu sei que poderia simplesmente movê-lo para ~ / git e executar o chmod / chown apropriado, mas eu realmente gostaria de entender por que estou vendo esse comportamento e como obter o resultado desejado usando a sintaxe sudo -u <user> -H <command> .

Muito obrigado antecipadamente:)

    
por James C 11.06.2014 / 12:00

1 resposta

1

Aparentemente, o comando git config --global http.proxy http://some.proxy.com:8080 funciona apenas em uma base por usuário.

Se você usa sua chamada git clone com o usuário git , você tem que usar sua chamada git config com o usuário git também.

    
por 11.06.2014 / 13:01