PacUI: Bash script providing advanced Pacman and Yay/Pikaur/Aurman/Pakku/Trizen/Pacaur functionality in a simple UI

if the update (option 1) fails, the user is offered to forcefully install udpates (if a connection to the mirror server is present):

the part in the “help” page describing this is the second to last line (in front of "Attention: ") here:

1 - UPDATE SYSTEM
"sudo pacman -Syu"
"yaourt -Syua"
The first command compares a list of all installed packages with package database on your system repository mirror/server. If an updated package is available from your system repositories, it will get downloaded and installed on your system.
The second command does the same as the first part, but with one exception: It also downloads, compiles, and installs all packages from the Arch User Repository (AUR), which have an updated PKGBUILD file. The first command is still needed occasionally, because major Pacman updates require "pacman -Syu" and will fail when started with an AUR helper.
If updates from system repositories fail, the user is offered the choice to update packages using "sudo pacman -Syu --overwrite A-Z,a-z,0-9,-,.,_".
Attention: When a new version of an AUR package is available, sometimes the PKGBUILD file is not updated. If you want to install the latest version of a single AURpackage, (re-)install it with INSTALL PACKAGES. If you want to install the latest versions of ALL AUR packages use FORCE UPDATE AUR.

this has probably happened to you.
it is actually a feature.

old versions of pacui had “force update”, “force remove packages”, and “force install packages” options. the first 2 options got integrated in the “update system” (option 1) and “remove packages and deps” (option 4), in case these options fail.

“force install packages” was NOT integrated in another pacui option but completely removed, because of multiple reasons:

  • if the package installation fails, there is something fundamentally wrong with your system and you should fix it first.

  • whenever i just want to look at package info, i use “pacui i” (option 3) and instead of installing a package, i quit pacui with CTRL+C. if “force install packages” were integrated, i had to quit it as well. this is really uncomfortable.


i am currently using yay, too. but an update has not failed for me for a long time. this means, i cannot tell you yay’s behavior in this case.
but yay offers you to show PKGBUILD differences before you update an AUR package. maybe, you are talking about this?

Look at the second item of FAQ here:


@petsam

1 Like

I think it’s not needed, I did some yay update work and that was it. I haven’t used yay before and I thought it was pacui change.
Sorry for the noise @excalibur1234 !..
PacUI is great fun!

1 Like

when you have other questions, feel free to ask them.
such questions often reveal areas of improvement - especially in pacui’s help page.

1 Like

28 posts were split to a new topic: PacUI removed from AUR

Is it the expected behaviour if no AUR helper is installed? The output is when I select the option “3 Install packages”:

Enter string to filter list >   < 11308/11308                                  
  TAB key to (un)select. ENTER to install. ESC to quit.                        
> 0ad                                     Cross-platform, 3D and historicall.. 
  0ad-data                                Cross-platform, 3D and historicall.. 
  4ti2                                    A software package for algebraic, .. 
  6tunnel                                 Tunnels IPv6 connections for IPv4-.. 
  9base                                   Port of various original Plan9 too.. 
  a2jmidid                                A daemon for exposing legacy ALSA .. 
  a2ps                                    An Any to PostScript filter          
  a52dec                                  A free library for decoding ATSC A.. 
  aalib                                   A portable ASCII art graphic library 
┌─────────────────────────────────────────────────────────────────────────────┐
│ /bin/bash: -c: line 14: conditional binary operator expected                │
│ /bin/bash: -c: line 14: syntax error near `"yay"'                           │
│ /bin/bash: -c: line 14: `                        elif [[  == "yay" ]]'      │
│                                                                             │
│                                                                             │

pacui-1.11-1

The option 4 gives normal info pane with name, version etc.

1 Like

i have not noticed this problem, because i do my testing mostly with yay installed :wink:
thanks for your report.

this has been a problem for me and still is: i do not completely understand the bash code here. but i have fixed the problem with a workaround in the latest commit:

1 Like

A post was split to a new topic: The mirror osmirror.org shows error: 404

Hello,

Thanks for making Pacui, I just started using it and it seems a very helpful tool.

I have a couple of function-related questions / requests. Maybe these are already included in the program but I wasn’t able to figure it out…

  • When at the list of packages on the “install packages” page, is there a way to sort by number of votes/popularity on Aur?
  • Is there a way to see which packages of those listed there are already installed? I can deduce it from the information box, but that’s not a very fast way.
  • Why aren’t the Aur descriptions listed in the overview list like the packages from official repo’s are?
  • Would it be possible to have some sort of visual indicator that packages are in the Aur?

no.
if you are interested in that, you have to look at the package information (and use an AUR helper, which displays that kind of information).

if i want to know, which packages are already installed, i usually do a “pacui r”, which displays all installed packages.
but there is no way in “install packages” besides looking at the package information (“installation reason” can be helpful - “pacui rt” or “pacui t” can provide great additional information).

the only way to get that kind of information from the AUR is by RPC interface. it only offers package information for packages you search for and not for all packages from the AUR.
this means that it is not possible to display package description for all AUR packages (as it is with packages from the system repositories).

i have thought about dynamically loading such a list of package description whenever you search for something, but this is probably hard to program in bash. a modern programming language could achieve this much more easily.
when i am bored, i might try to implement something like it.

certainly such indicators would be cool. you could do even more indicators:

  • installation state
  • repository (system repository, aur, package group)
  • aur votes
  • out of date
  • no longer maintained
  • package version
  • license

however, this would increase the needed terminal width dramatically. there are a lot of (vocal) users, who use pacui within a tiny terminal window inside their tiling WM. these people would definitely be annoyed by those indicators.

therefore, we need to decide, which indicators are important. additionally, we should decide what start delay is worth having such indicators (the first 2 are rather easy to , but the last are almost impossible (see answer above)). traversing a list of 60k+ items and adding stuff to every line certainly takes some time.
in my opinion, indicators are only needed when pacui has package descriptions of aur packages.

because of the missing package description of AUR packages, all lines without a package description are either AUR packages or package groups. this makes them rather easy to identify (when you know this little trick).

I see, thanks for your reply! I was kind-of under the impression that Pacui could be used to replace an aur helper, but I now realise this is not its intended purpose. I’ll look into other aur helpers then!

i have just finished a restructuring of the “fix” option.

now, pacui asks the user what to do next. this way, the user can prevent pacui from doing dangerous stuff (like disabling temporary key checks or reinstalling the keyring). i hope this alleviates some concerns about this pacui part.

4 Likes

i am currently working on the “reverse dependency tree” option in pacui.

the reverse dependency tree of XXXX shows packages, which have XXXX as dependency. for example, the reverse dependency tree of 0ad (the open source strategy game) does not show anything, because no package has 0ad as a dependency; while the reverse dependency tree of bash is huge because the majority of packages depend (indirectly) on bash.

here is the way pacui 1.11 works:

  1. a list of locally installed packages is shown, from which you can select one: <package name>.
  2. pactree -c -r <package name> shows you a list of locally installed packages, which depend on <package name>.

the latest commit (https://github.com/excalibur1234/pacui/commit/f58139ee953f690bbbf2c4691337cf498a506f75) adds support for non-locally installed packages to the “reverse dependency tree” option.


Approach #1

here is how the “reverse dependency tree” option currently works (with the latest commit linked above):

  1. a list of locally installed and repository packages is shown, from which you can select one: <package name>.
  2. if <package name> is a locally installed package, pactree -c -r <package name> shows you a list of locally installed packages, which depend on <package name>.
    if <package name> is a repository package, pactree -c -r -s <package name> shows you a list of locally installed and repository packages, which depend on <package name>.

pros of the current approach:

  • if you want to view the reverse dependency tree of bash, you are shown a tree with ~1.5k entries (which only shows locally installed packages).

cons of the current approach:

  • it is impossible to view the reverse dependency tree of a locally installed package and get repository package in the tree.

Approach #2

i could change the behavior to this:

  1. a list of locally installed and repository packages is shown, from which you can select one: <package name>.
  2. pactree -c -r -s <package name> shows you a list of locally installed and repository packages, which depend on <package name>.

cons of this approach:

  • if you want to view the reverse dependency tree of bash, you are shown a tree with ~29k entries (which shows locally installed and repository packages).

which behavior do your prefer?

  • Approach #1
  • Approach #2

0 voters

1 Like

@excalibur1234 ping me when -git version need a rebuild :wink:

1 Like

I am getting a parsing error on Openbox 18.0 minimal

you seem to have multiple problems:

  • parse error
  • list of packages does not include AUR packages, which means you do not have an AUR helper installed or do not have an internet connection.
    pacui can be used this way, but i would never do such a thing.

maybe, those problems are related. i am downloading the openbox edition and will look for the problem in the next couple of days. i will ping you when i think i have solved the problem.

Solved. I didn’t realize that I didn’t have an AUR helper installed. I installed trizen and it works now. It looks like pacui gets a parse error when it doesn’t have an AUR helper installed?

even, if i remove all aur helpers, (the latest verion of) pacui works fine - no parse error.

can you check this on your system, too?
just use these commands to download the latest version of pacui and start it:

wget https://raw.githubusercontent.com/excalibur1234/pacui/master/pacui
bash pacui

p.s.: i also use zsh by default.

I did sudo pacman -Rns trizen, attempted using pacui, and I was getting the parsing error again.


Using the latest version of pacui using weget had no parsing issues. Seems like only the 1.11-1 that is in the latest stable Manjaro repo is having issues.

wget https://raw.githubusercontent.com/excalibur1234/pacui/master/pacui
bash pacui

The current version of pacui I have installed on my system is 1.11-1.

I am also using zsh by default. It comes with the openbox 18.0 minimal ISO.

1 Like

@excalibur1234 pacui is working just fine for me… wget download etc. worked perfectly.

1 Like