Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

paru -Scc fails to remove directories #1302

Open
Qelxiros opened this issue Dec 20, 2024 · 1 comment · May be fixed by #1306
Open

paru -Scc fails to remove directories #1302

Qelxiros opened this issue Dec 20, 2024 · 1 comment · May be fixed by #1306

Comments

@Qelxiros
Copy link

Affected Version

paru v2.0.3.rebuild.1.r1.g90656a9 - libalpm v15.0.0

Description

I ran paru -Scc and got the following output (full output below):

Cache directory: /var/cache/pacman/pkg/
:: Do you want to remove ALL files from cache? [y/N] y
removing all files from cache...
error: could not remove /var/cache/pacman/pkg/download-Poyh7x: Is a directory
error: could not remove /var/cache/pacman/pkg/download-9SyCdF: Is a directory

I expected paru to remove all files (including directories) or filter out directories so as not to produce an error.

Output

Include the FULL output of any relevant commands/configs

 ~  paru -Scc                                                                                                                                                                                                                         ✔  8s 

Cache directory: /var/cache/pacman/pkg/
:: Do you want to remove ALL files from cache? [y/N] y
removing all files from cache...
error: could not remove /var/cache/pacman/pkg/download-Poyh7x: Is a directory
error: could not remove /var/cache/pacman/pkg/download-9SyCdF: Is a directory

Database directory: /var/lib/pacman/
:: Do you want to remove unused repositories? [Y/n] 
removing unused sync repositories...

Clone Directory: /home/jeremy/.cache/paru/clone
:: Do you want to clean ALL AUR packages from cache? [y/N]: y

Diff Directory: /home/jeremy/.cache/paru/diff
:: Do you want to remove all saved diffs? [Y/n]: 

Don't cut parts of the input always include the FULL thing

paru.conf and pacman.conf are usually always relevant

paru.conf

#
# $PARU_CONF
# /etc/paru.conf
# ~/.config/paru/paru.conf
#
# See the paru.conf(5) manpage for options

#
# GENERAL OPTIONS
#
[options]
PgpFetch
Devel
Provides
DevelSuffixes = -git -cvs -svn -bzr -darcs -always -hg -fossil
#AurOnly
BottomUp
#RemoveMake
#SudoLoop
UseAsk
#SaveChanges
#CombinedUpgrade
#CleanAfter
#UpgradeMenu
#NewsOnUpgrade

#LocalRepo
#Chroot
#Sign
#SignDb
#KeepRepoCache

#
# Binary OPTIONS
#
#[bin]
#FileManager = vifm
#MFlags = --skippgpcheck
#Sudo = doas

pacman.conf

#
# /etc/pacman.conf
#
# See the pacman.conf(5) manpage for option and repository directives

#
# GENERAL OPTIONS
#
[options]
# The following paths are commented out with their default values listed.
# If you wish to use different paths, uncomment and update the paths.
#RootDir     = /
#DBPath      = /var/lib/pacman/
#CacheDir    = /var/cache/pacman/pkg/
#LogFile     = /var/log/pacman.log
#GPGDir      = /etc/pacman.d/gnupg/
#HookDir     = /etc/pacman.d/hooks/
HoldPkg     = pacman glibc
#XferCommand = /usr/bin/curl -L -C - -f -o %o %u
#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u
#CleanMethod = KeepInstalled
Architecture = auto

# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup
#IgnorePkg   =
#IgnoreGroup =

#NoUpgrade   =
#NoExtract   =

# Misc options
#UseSyslog
Color
#NoProgressBar
CheckSpace
#VerbosePkgLists
ParallelDownloads = 10

# By default, pacman accepts packages signed by keys that its local keyring
# trusts (see pacman-key and its man page), as well as unsigned packages.
SigLevel    = Required DatabaseOptional
LocalFileSigLevel = Optional
#RemoteFileSigLevel = Required

# NOTE: You must run `pacman-key --init` before first using pacman; the local
# keyring can then be populated with the keys of all official Arch Linux
# packagers with `pacman-key --populate archlinux`.

#
# REPOSITORIES
#   - can be defined here or included from another file
#   - pacman will search repositories in the order defined here
#   - local/custom mirrors can be added here or in separate files
#   - repositories listed first will take precedence when packages
#     have identical names, regardless of version number
#   - URLs will have $repo replaced by the name of the current repo
#   - URLs will have $arch replaced by the name of the architecture
#
# Repository entries are of the format:
#       [repo-name]
#       Server = ServerName
#       Include = IncludePath
#
# The header [repo-name] is crucial - it must be present and
# uncommented to enable the repo.
#

# The testing repositories are disabled by default. To enable, uncomment the
# repo name header and Include lines. You can add preferred servers immediately
# after the header, and they will be used before the default mirrors.

#[core-testing]
#Include = /etc/pacman.d/mirrorlist

[core]
Include = /etc/pacman.d/mirrorlist

#[extra-testing]
#Include = /etc/pacman.d/mirrorlist

[extra]
Include = /etc/pacman.d/mirrorlist

# If you want to run 32 bit applications on your x86_64 system,
# enable the multilib repositories as required here.

#[multilib-testing]
#Include = /etc/pacman.d/mirrorlist

# [multilib]
# Include = /etc/pacman.d/mirrorlist

# An example of a custom package repository.  See the pacman manpage for
# tips on creating your own repositories.
#[custom]
#SigLevel = Optional TrustAll
#Server = file:///home/custompkgs
romanstingler pushed a commit to romanstingler/paru that referenced this issue Dec 25, 2024
When running paru -Scc, ensure subdirectories in the pacman package cache
are properly removed using sudo. Use the cache directory from pacman's
configuration instead of hardcoding the path to respect user settings.

closes Morganamilo#1302
@romanstingler romanstingler linked a pull request Dec 25, 2024 that will close this issue
@romanstingler
Copy link

romanstingler commented Dec 25, 2024

the issue is that paru in case of the cleanup just passes all the parameters to pacmanand pacman fails to remove the directories.
I have no clue how you got some temp folders into that directory, as there should be none.

Do you have any idea what you did to get these folders?

I have created a PR and hope that the author of paru can have a discussion about that.
Because, I really don't know if paru should be different from pacman.

But on the other hand, it is probably user-friendlier just to clean the cache dir instead of failing.
You can download my patched version and compile it yourself if you want to use it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants