Don't use one-click install .....

Again and again I read here “Don’t use the one click install feature” - the last time in my recent post On my question how to install these packages you find with ‘package search’ because they are not in the standard repos I have received no answer. Therefore I started this post. Now at the package search site there is beside the ‘one-click install’ button the “expert download” button. I am no expert and I remember trying this once and then when trying to install I got the message that another package was missing and I looked for that and when I tried to install that the message came that another package too was missing and I tried several times finding missing packages in different repos. I am aware there is a bug report about all those repos the one-click install wants to install on your computer but that does not help me either. I found nothing in the official documentation or on the internet. So may be someone is sending instructions how to install packages without the ‘one-click install’ button and without ending up with a dependency mess. Just simple instruction for non-experts. Thank you

This might be just your ticket for packages that are not in standard repos, or even if they are:

sudo zypper in opi
man opi

It doesn’t get much press, but WFM.

Thank you, mrmazda, I wondered why everyone writes do not… but I don’t get instructions of how to do it. What you write assumes that this package (e.g. opi) is in the repos otherwise zypper tells me that it is not available. THat means I have to install that repo first. So the problem is that when zyppper says next "opi needs xyz version 123 or higher and this cannot be provided. I had this before. Then I have to go through all those repos the one-click install wants to supply to see where this package is. THis may repeat a few time (I had this before that’s why I always used one-click install and tried to clean up the repos afterwards. Now since 15.4 all those packages come with about 15 repos (I had this at least 7 or 8 times since upgrade to leap 15.4) and I get the first error messages when YAST tries to install these repos. So one click install is definitely broken and unusable. Just as a kind of instruction I write something down, please correct me if I am wrong:

  1. Search for package
  2. install the repo which is listed in the software search website
  3. use zypper in package
  4. If a package is required look into the other repos to find it
    5 install this repo
    6 use zypper in again
    7 repeat 4 to 6 until the package installs
    Is this the best way to do it?

opi is the better option. It shows what it does:

**erlangen:~ #** **opi vivaldi** 
Do you want to install Vivaldi from Vivaldi repository? (Y/n)  
**1. vivaldi-stable **
2. vivaldi-snapshot 
Pick a number (0 to quit): **1** 
Repository 'Packman' is up to date.                                                                                                                                                                                                            
Repository 'chrome' is up to date.                                                                                                                                                                                                             
Repository 'home:Dead_Mozay (openSUSE_Tumbleweed)' is up to date.                                                                                                                                                                              
Repository 'qmapshack (openSUSE_Tumbleweed)' is up to date.                                                                                                                                                                                    
Repository 'jalbum' is up to date.                                                                                                                                                                                                             
Repository 'myrepo' is up to date.                                                                                                                                                                                                             
Repository 'Haupt-Repository (NON-OSS)' is up to date.                                                                                                                                                                                         
Repository 'Haupt-Repository (OSS)' is up to date.                                                                                                                                                                                             
Repository 'Packman' is up to date.                                                                                                                                                                                                            
Repository 'Hauptaktualisierungs-Repository' is up to date.                                                                                                                                                                                    
Retrieving repository 'vivaldi' metadata ...............................................................................................................................................................................................[done] 
Building repository 'vivaldi' cache ....................................................................................................................................................................................................[done] 
All repositories have been refreshed. 
Loading repository data... 
Reading installed packages... 
Resolving package dependencies... 

The following NEW package is going to be installed:

1 new package to install. 
Overall download size: 92.7 MiB. Already cached: 0 B. After the operation, additional 333.9 MiB will be used. 
**Continue? [y/n/v/...? shows all options] (y): ****n **
**Do you want to keep the repo "vivaldi"? (Y/n)  
****erlangen:~ #** zypper lr -E 
#  | Alias                | Enabled | GPG Check | Priority | URI 
 6 | Packman              | Yes     | (r ) Yes  |   90     | 
22 | packman              | Yes     | (r ) Yes  |   90     | 
19 | non-oss              | Yes     | (r ) Yes  |   99     | 
21 | oss                  | Yes     | (r ) Yes  |   99     | 
28 | update               | Yes     | (r ) Yes  |   99     | 
**30 | vivaldi              | Yes     | (r ) Yes  |   99     | 
 **8 | chrome               | Yes     | (r ) Yes  |  100     | 
10 | home_Dead_Mozay      | Yes     | (r ) Yes  |  100     | 
14 | home_kukuk_qmapshack | Yes     | (r ) Yes  |  100     | 
15 | jalbum               | Yes     | (  ) No   |  100     | 
18 | myrepo               | Yes     | (  ) No   |  100     | dir:/home/karl/Downloads/myrepo 
**erlangen:~ #**

It has been mentioned before…

First you should always search via yast-software if a package is in any standard repo. You can also search with zypper in the repos (use man pages or zypper cheat sheet for a how to).

Because there is no instruction that can be copy-pasted without thinking. You need to understand what these instructions do, why you need to do it and how to adjust them or solve issues.

  1. Search for package

Here the problem starts already. Search on does not work for 15.4 and nobody is willing to step in and fix it. You can use osc tool but this is primarily developer tool and needs some understanding of how Build Service works. And you want simple instructions, not in depth study. So opi - which searches OBS under the hood - is the closest to “user friendly” frontend you want.

  1. install the repo which is listed in the software search website

Again, opi will offer you to add this repo and will check whether there is already repository pointing to the same location. The problem is, packages in one project may be built against packages in another project. The most obvious example is KDE where [noparse]KDE:Extra[/noparse] depends on [noparse]KDE:Applications[/noparse] which itself depends on [noparse]KDE:Frameworks5[/noparse]. That is exactly what 1-Click install attempts to solve - it provides list of all needed repositories. The problem often mentioned here is not inherent to 1-Click, but to the way Open Build Service is used to publish Leap 15.3 and 15.4. You are not forced to add all suggested repositories, you can customize them and remove those that are either wrong or already exist (granted, 1-Click installer should check for duplicates itself. Not sure whether bug report exists).

OTOH opi does not attempt to add another repositories and so may result in broken dependencies. You still need to somehow check what other repositories are needed and add them. Which again means to be familiar with build service.

  1. use zypper in package
  2. If a package is required look into the other repos to find it

The whole point of zypper is to resolve dependencies automatically.

Is this the best way to do it?

Yes, 1-Click :slight_smile: You need to review the list of repositories and remove

a) repositories for your current Leap release (everything starting with which you should already have)
b) repositories for SLE which are not accessible to us but are used by build service to import binary packages from. Everything starting with
c) Explicit Backports repositories, they are already part of openSUSE.

As example here is repository list for krusader from [noparse]KDE:Extra[/noparse] built against newer KDE (there are two variants) with “wrong” repositories marked red: (openSUSE:Leap:15.4) (SUSE:SLE-15-SP3:Update) (openSUSE:Backports:SLE-15-SP4:Update) (openSUSE:Leap:15.4:Update) (SUSE:SLE-15-SP4:Update) (KDE:Applications) (KDE:Extra) (KDE:Frameworks5) (KDE:Qt5) (SUSE:SLE-15-SP1:GA) (SUSE:SLE-15-SP1:Update) (SUSE:SLE-15-SP2:GA) (SUSE:SLE-15-SP2:Update) (SUSE:SLE-15-SP3:GA) (SUSE:SLE-15-SP4:GA) (SUSE:SLE-15:Update) (openSUSE:Backports:SLE-15-SP4) (openSUSE:Backports:SLE-15-SP4:Checks)

This list is more or less fixed, every project built against openSUSE Leap 15.4 will have them.

And this still does not guarantee that everything is correctly setup - here zypper is happy to use KDE packages from Leap 15.4 even though I install krusader explicitly built against newer versions from different repository.

Of course there remains the problem how to find packages when search does not work …

P.S. And opi is far from being perfect either. As example

You have selected package name: krusader
1. KDE:Unstable:Extra ?                      | 2.99.40git495~4db3a4a     | x86_64
2. KDE:Extra ?                               | 2.7.2                     | x86_64
3. KDE:Extra ?                               | 2.7.2                     | x86_64
4. home:plater !                             | 2.7.2                     | x86_64
Pick a number (0 to quit): 

Oops. What is the difference between 2 and 3?

No, in openSUSE you cannot.

Yes you can. Use

zypper search <packagename>

to find if a package is available and after that use

zypper info <packagename> 

to find the repo in which the package is located.
This usecase is to find if a package is in (already set up) standard repos before adding additional (not needed) one-click repos.

A fundamental problem here, not only with 1-Click but other installation methods also, is that the user needs to know which repositories are needed, and which are unneeded/incompatible with their current version of openSUSE.

A new user or one with limited experience will probably not have that knowledge.

I feel 1-Click is particularly troublesome in as much, by the very nature of it’s name, it would likely be used by novice/inexperienced users. Presented with 1-Click’s “Proposal” screen they won’t have the prerequisite knowledge required to use the “Custom” option, it is quite probable they would accept that proposal on the basis of “the installer knows what it’s doing”, or, they will be somewhat overwhelmed and abort the install. Either way, they would stand the chance of potentially breaking their system, or, they would not have achieved their desired aim of installing a piece of software.

I see. You believe that YaST Software searches only “in standard repos”. Both YaST Software and zypper always search in all repositories defined on the system (unless explicitly restricted). There is no difference between YaST Software and zypper here and there is no difference between “standard repo” and repositories you added later with respect to search.

What zypper can do on SLE is to search for packages in repositories not defined on the system and suggest which repository should be added to install package found. This functionality is not available on openSUSE.

Are we here in the SLE or openSUSE forum? So what is relevant here?

And you still didn’t get the starting point of this thread. A beginner or someone who have a fresh openSUSE installation has only “standard repos” set up. So the first step would be to search for a package with yast-software or zypper before you use external search tools and add additional repos. Later if your system gets older and you have already added some additional repos, it is crystal clear that if you use zypper search or yast-software you will find packages in all of this additional repos.

But whatever floats your boat…

As to adding a package from some optional repo, there is what I consider a method better in various ways than what you usually see published for enabling its installation, including visiting and using 1-click: visiting its installation source in your favorite web browser, then downloading its repo file to /etc/zypp/repos.d/. Yes, sometimes you have to know, which can be a chicken & egg issue search issue. That’s what your admin brain is for. For instance, you know firefox-esr exists, and wish to use it, but you know it’s not in standard repos. You know it’s a mozilla product, so all you need to do is find mozilla on, and there it is, So, you open it to find directories for the current Leaps and for TW. You open openSUSE_Leap_15.4/, and lo and behold, there’s a file named mozilla.repo. Open x86_64/ to see what lives there, and sure enough, you find firefox-esr is there. So you back up to openSUSE_Leap_15.4, fetch the mozilla.repo file, alter its name if you wish with your text editor (both inside and out), save it to /etc/zypp/repos.d/, and your source for firefox-esr is “configured”. You can now install firefox-esr, and automatically its dependencies, with zypper, opi or yast. Of course, if you have opi installed, if it can locate the package you want, it will “configure” the required repo for you along with installing the package.

Which is exactly why I said “not in openSUSE”. You post to which I replied sounded like zypper has additional search capabilities compared with YaST Software module and the only additional search capabilities I am aware of are those I mentioned. So it was misunderstanding.

Finding, adding repos, installing packages for Leap 15.3 & 15.4 from “Experimental” branch

First a big thank you to all who applied overnight. I didn’t know the package opi and I have installed it. I will play around with it to find out more but today I have a busy day and it has to be later…