How to list the package repository URL in SUSE? - linux

I tried zypper repos but it does not list the URL of the repository. I need this URL as I need the same package repository in another machine and this package repository is private to our organization. Is there a way I can get the URL?

I suppose you can use
zypper repos -u
or
zypper lr -u
which will also give you the URI for the repository.

Related

Creating a full replica/offline copy of the public pypi repository

Nexus Repository Manager OSS 3.9.0-01.
I wish to create a 'proxy' Nexus repository that will a replica of the public pypi repository. The other machines can then be configured to point to this Nexus repo. so that a 'pip install' on these machines works even if there is no Internet connection. Accordingly, I created a proxy repository of type 'pypi(proxy)'.
When I browse this repo, there aren't any components/assets but whenever someone does a 'pip install' by pointing to this repo, the package shows up in the interface e.g: pip install --user pyspark --verbose
What I am looking for is to clone/copy all the packages in the PyPI repository at once so that the future 'pip install' refers to this local copy and doesn't go to the Internet every time. Once a day, the local copy should be updated.
Is it possible to do so in Nexus OSS?
What you are trying to achieve is a PyPI mirror repository, not a proxy.
The PyPI proxy repository behaviour you described is correct, because it is a proxy, not a mirror. Nexus Repository Manager does not provide functionality to to create a mirror of another repository.
However, you could try to use a PyPI mirror client (e.g. bandersnatch) to obtain a copy of all packages, then move those files over to your PyPI hosted repository and ask Nexus to reindex the files. Later you would have to periodically repeat the process to keep your mirror up to date.

Install Python Package From Private Bitbucket Repo

I created a Python 3.5 package for work, which is in a private Bitbucket repo and I can easily pull the code and do a "python .\setup.py install" to have it install, but I want to try to eliminate the step of having to pull the code and have multiple copies on my machine and at the same time make it easier for my coworkers to install/update the package. Is it possible to use git bash or cmd (we are all on Windows) to install the package and ask for credentials in the process?
You can use the https option listed in pip_install.
https://pip.pypa.io/en/stable/reference/pip_install/#git
Sample Code:
pip install git+https://USER_NAME#GIT_URL/PATH_TO_YOUR_REPO.git
You can use the url Bitbucket gives you when you request the clone url. Just remember to add the git+ to it.

Import external repositories to Gitlab with sshfs

Is that possible to have all repositories on some local server and also browse it with Gitlab (hosted on other local server)?
I use Gitlab v8.3.3. and I have a following situation:
- I have all of my repositories stored at local server, say: 192.168.5.5 at /git
- I also have a local virtual machine that hosts Gitlab, at: 192.168.5.6
- I mounted my local git server at git-data directory (that's where repositories are being kept) by running: sshfs my.user#192.168.5.5:/git /var/opt/gitlab/git-data/repositories/server-group
server-group is an empty directory created by Gitlab when I created a new group with the same name.
Now I would like to be able to browse repositories mounted this way via Gitlab.
Is that possible?
I believe it should be but it needs some extra configuration?
Of course simple: gitlab-ctl reconfigure or gitlab-ctl restart doesn't help and Gitlab group server-group has 0 projects even though in it's directory I have valid "repos.git".
You need to create the projects in GitLab before they will show up.
But there are a couple considerations, GitLab is expecting the repos to be bare repos, and also will be expected a HEAD file to be set.
My advice would be to create the projects by importing each repo from your git server. This will create the bare repos with all your commits and branches, and create the projects in the GitLab database. Then if you still want the repos on a seperate server, you can move the GitLab created folders to the other server, and then mount them as you were trying.
Alternatively, if you still want to try to get your current repos to show up, and hope they work. (Not sure if they will if they aren't bare repos) You can try:
unmounting your git repo that you have setup
Creating empty projects for each of your repos, in a way that their path will match your current repos.
remount your git repos into the place where the empty repos where created.
I resolved this issue by:
1. creating empty repositories with the same name using GitLab API
curl -k --header "PRIVATE-TOKEN: <your_private_token>" -H "Content-Type: application/json" -d '{"name":"<name_here>","path":"<the_same_name_here>","visibility_level":"10","namespace_id":"<id_of_my_group>"}' "https://192.168.5.6/api/v3/projects"
2. mounting our repositories as described in How can I use GitLab on one server and store all of the repositories on another? (including changing permissions - see answer)

Import the entire android repositories to GitLab

I want to create a copy of the entire android repository (which uses the repo tool)
Is there a simple way to duplicate the source into my own GitLab server?
Even if the android repo uses the repo tool, you end up with a regular git repo, since a command like repo sync is like a git clone.
Simply create an empty repo on your GitLab server, then go to your local repo, and:
git remote add gitlab /url/of/your/gitlab/repo
git push --mirror gitlab
I want to fix this problem for long time. I think the man who has the same problem is less. because you should be a android system developer not just a simple git user can met this problem.
There is a good way to do this.
Import bare repositories into your GitLab instance
Notes
The owner of the project will be the first admin
The groups will be created as needed
The owner of the group will be the first admin
Existing projects will be skipped
How to use
Create a new folder inside the git repositories path. This will be the name of the new group.
For omnibus-gitlab, it is located at: /var/opt/gitlab/git-data/repositories by default, unless you changed it in the /etc/gitlab/gitlab.rb file.
For installations from source, it is usually located at: /home/git/repositories or you can see where your repositories are located by looking at config/gitlab.yml under the gitlab_shell => repos_path entry.
New folder needs to have git user ownership and read/write/execute access for git user and its group:
sudo -u git mkdir /var/opt/gitlab/git-data/repositories/new_group
If you are using an installation from source, replace /var/opt/gitlab/git-data with /home/git.
Copy your bare repositories inside this newly created folder:
sudo cp -r /old/git/foo.git /var/opt/gitlab/git-data/repositories/new_group/
# Do this once when you are done copying git repositories
sudo chown -R git:git /var/opt/gitlab/git-data/repositories/new_group/
foo.git needs to be owned by the git user and git users group.
If you are using an installation from source, replace /var/opt/gitlab/git-data with /home/git.
Run the command below depending on your type of installation:
Omnibus Installation
$ sudo gitlab-rake gitlab:import:repos
Installation from source
Before running this command you need to change the directory to where your GitLab installation is located:
$ cd /home/git/gitlab
$ sudo -u git -H bundle exec rake gitlab:import:repos RAILS_ENV=production
Example output
Processing abcd.git
* Created abcd (abcd.git)
Processing group/xyz.git
* Created Group group (2)
* Created xyz (group/xyz.git)
[...]

Cannot install a specific git branch on github with pip - Permission denied (publickey)

I'm trying to install a forked repo (https://github.com/theatlantic/django-ckeditor/) on Github with pip but without success.
When I use
pip install -e git+git://github.com/theatlantic/django-ckeditor.git#egg=django-ckeditor
It does install the repo's content, but an older version of it, without the new changes I'm interested in. So I tried to force pip to get the most updated branch, which is apparently atl/4.3.x but I get this weird error, like if the branch's name would be incorrect or something like that :
$ pip install -e git+git://github.com/theatlantic/django-ckeditor.git#"atl/4.3.x"#egg=django-ckeditor
Obtaining django-ckeditor from git+git://github.com/theatlantic/django-ckeditor.git#atl/4.3.x#egg=django-ckeditor
Updating /home/mathx/.virtualenvs/goblets/src/django-ckeditor clone (to atl/4.3.x)
Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
Clone of 'git#github.com:theatlantic/ckeditor-dev.git' into submodule path 'ckeditor/static/ckeditor/ckeditor-dev' failed
Am I making a mistake somewhere ?
Thanks.
A user in IRC came in asking about this similar situation, and I think the answer we found applies here as well. (The user linked to this question saying "the same thing is happening", that's how I came across it.)
Consider the output from the OP:
Obtaining django-ckeditor from git+git://github.com/theatlantic/django-ckeditor.git#atl/4.3.x#egg=django-ckeditor
The OP was attempting to pip install django-ckeditor via anonymous git (a git:// URL).
The error was:
Clone of 'git#github.com:theatlantic/ckeditor-dev.git' into submodule path 'ckeditor/static/ckeditor/ckeditor-dev' failed
If you look at https://github.com/theatlantic/django-ckeditor/blob/atl/4.3.x/.gitmodules, django-ckeditor pulls in ckeditor-dev, and does so with an SSH URL.
GitHub does not allow anonymous clones via SSH. Any use of git via SSH must use a registered SSH key. A user would have to sign up for GitHub, register their public key, and configure the private key appropriately to be used when this installation is happening.
The repository owner (theatlantic) should change their submodule URL to an https:// URL, or anonymous git://.
The error message you posted:
Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
...indicates you don't have access to the repo.
You might have luck using GitHub's HTTP URL instead:
pip install -e git+http://github.com/theatlantic/django-ckeditor.git#egg=django-ckeditor

Resources