Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Is it possible to use pip to install a package over ssh in a self-hosted gitlab?

Tags:

pip

ssh

gitlab

I have a self-hosted gitlab and I would like to install a package hosted there using ssh.

I tried:

pip install git+ssh://git@<my_domain>:se7entyse7en/<project_name>.git

Here's the output:

Downloading/unpacking git+ssh://git@<my_domain>:se7entyse7en/<project_name>.git
Cloning ssh://git@<my_domain>:se7entyse7en/<project_name>.git to /var/folders/3r/v7swlvdn2p7_wyh9wj90td2m0000gn/T/pip-4_JdRU-build
ssh: Could not resolve hostname <my_domain>:se7entyse7en: nodename nor servname provided, or not known
fatal: Could not read from remote repository.

Please make sure you have the correct access rights and the repository exists.

Update:

I tried to upload it on gitlab.com and after having uploaded the repo I tried to install it by running:

pip install git+ssh://[email protected]:loumarvincaraig/<project_name>.git

but the nothing changed. In particular here's the content of pip.log:


/Users/se7entyse7en/Envs/test/bin/pip run on Mon Nov 17 22:14:51 2014
Downloading/unpacking git+ssh://[email protected]:loumarvincaraig/<project_name>.git

Cloning ssh://[email protected]:loumarvincaraig/<project_name>.git to /var/folders/3r/v7swlvdn2p7_wyh9wj90td2m0000gn/T/pip-91JVFi-build

Found command 'git' at '/usr/local/bin/git'
Running command /usr/local/bin/git clone -q ssh://[email protected]:loumarvincaraig/<project_name>.git /var/folders/3r/v7swlvdn2p7_wyh9wj90td2m0000gn/T/pip-91JVFi-build
Complete output from command /usr/local/bin/git clone -q ssh://[email protected]:loumarvincaraig/<project_name>.git /var/folders/3r/v7swlvdn2p7_wyh9wj90td2m0000gn/T/pip-91JVFi-build:

Cleaning up...

Command /usr/local/bin/git clone -q ssh://[email protected]:loumarvincaraig/<project_name>.git /var/folders/3r/v7swlvdn2p7_wyh9wj90td2m0000gn/T/pip-91JVFi-build failed with error code 128 in None

Exception information:
Traceback (most recent call last):
File "/Users/se7entyse7en/Envs/test/lib/python2.7/site-packages/pip/basecommand.py", line 134, in main
status = self.run(options, args)
File "/Users/se7entyse7en/Envs/test/lib/python2.7/site-packages/pip/commands/install.py", line 236, in run
requirement_set.prepare_files(finder, force_root_egg_info=self.bundle, bundle=self.bundle)
File "/Users/se7entyse7en/Envs/test/lib/python2.7/site-packages/pip/req.py", line 1092, in prepare_files
self.unpack_url(url, location, self.is_download)
File "/Users/se7entyse7en/Envs/test/lib/python2.7/site-packages/pip/req.py", line 1231, in unpack_url
return unpack_vcs_link(link, loc, only_download)
File "/Users/se7entyse7en/Envs/test/lib/python2.7/site-packages/pip/download.py", line 410, in unpack_vcs_link
vcs_backend.unpack(location)
File "/Users/se7entyse7en/Envs/test/lib/python2.7/site-packages/pip/vcs/__init__.py", line 240, in unpack
self.obtain(location)
File "/Users/se7entyse7en/Envs/test/lib/python2.7/site-packages/pip/vcs/git.py", line 111, in obtain
call_subprocess([self.cmd, 'clone', '-q', url, dest])
File "/Users/se7entyse7en/Envs/test/lib/python2.7/site-packages/pip/util.py", line 670, in call_subprocess
% (command_desc, proc.returncode, cwd))
InstallationError: Command /usr/local/bin/git clone -q ssh://[email protected]:loumarvincaraig/<project_name>.git /var/folders/3r/v7swlvdn2p7_wyh9wj90td2m0000gn/T/pip-91JVFi-build failed with error code 128 in None
like image 643
se7entyse7en Avatar asked Nov 17 '14 18:11

se7entyse7en


2 Answers

I don't know why, but by running the following command it worked (slash instead of : after <my_domain>):

pip install git+ssh://git@<my_domain>/se7entyse7en/<project_name>.git
#                                    ^
#                             slash instead of :
like image 169
se7entyse7en Avatar answered Nov 11 '22 08:11

se7entyse7en


Yes. This is the default use:

pip install git+ssh://git@<my_domain>:22/<project_group>/<project_name>.git

The use of the colon by itself implies the default ssh port number 22. Because you can control the port number of your server, the port number could be different. Git enables customisation by not providing :22/ or / only.

like image 45
Sven Haile Avatar answered Nov 11 '22 07:11

Sven Haile