Page MenuHomeSolus

eopkg update error
Closed, ResolvedPublic

Description

I tried to install "brasero" via the software centre yesterday but neither the "Updates" nor the "Installed" tabs would load and the search function didn't work.

Instead, I was able to install via the command line, i.e. sudo eopkg install brasero.

However, when I tried to update the system via the command line I got this error:

X@Y ~ $ sudo eopkg up
Password:
Updating repositories
Updating repository: Solus
eopkg-index.xml.xz.sha1sum (40.0 B)100% 438.07 KB/s [00:00:00] [complete]
Solus repository information is up-to-date.

System error. Program terminated.
[Errno 2] No such file or directory: '/var/lib/eopkg/package/sdl2-image-32bit-5.1.14-7/metadata.xml'
Please use 'eopkg help' for general help.
Use --debug to see a traceback.

X@Y ~ $ sudo eopkg up --debug
Updating repositories
DEBUG: RepoDB initialized in 0.000133037567139.
DEBUG: HistoryDB initialized in 0.000592947006226.
Updating repository: Solus
DEBUG: RepoDB initialized in 9.60826873779e-05.
eopkg-index.xml.xz.sha1sum (40.0 B)100% 348.60 KB/s [00:00:00] [complete]
Solus repository information is up-to-date.
DEBUG: HistoryDB initialized in 0.00164699554443.
DEBUG: PackageDB initialized in 0.0716419219971.
DEBUG: RepoDB initialized in 0.00025486946106.
DEBUG: InstallDB initialized in 0.00439500808716.
System error. Program terminated.
<type 'exceptions.OSError'>: [Errno 2] No such file or directory: '/var/lib/eopkg/package/sdl2-image-32bit-5.1.14-7/metadata.xml'
Please use 'eopkg help' for general help.

Traceback:

File "/usr/bin/eopkg", line 82, in <module>
  cli.run_command()
File "/usr/lib/python2.7/site-packages/pisi/cli/pisicli.py", line 140, in run_command
  self.command.run()
File "/usr/lib/python2.7/site-packages/pisi/cli/upgrade.py", line 104, in run
  pisi.api.upgrade(packages, repository)
File "/usr/lib/python2.7/site-packages/pisi/api.py", line 69, in wrapper
  ret = func(*__args,**__kw)
File "/usr/lib/python2.7/site-packages/pisi/api.py", line 441, in upgrade
  return pisi.operations.upgrade.upgrade(packages, repo)
File "/usr/lib/python2.7/site-packages/pisi/operations/upgrade.py", line 126, in upgrade
  Ap = find_upgrades(A, replaces)
File "/usr/lib/python2.7/site-packages/pisi/operations/upgrade.py", line 92, in find_upgrades
  (version, release, build, distro, distro_release) = installdb.get_version_and_distro_release(i_pkg)
File "/usr/lib/python2.7/site-packages/pisi/db/installdb.py", line 153, in get_version_and_distro_release
  meta_doc = piksemel.parse(metadata_xml)

X@Y ~ $

Event Timeline

i personally can't reproduce the issue.
have you tried installing the package ? sudo eopkg install sdl2-image-32bit

It is already installed:

X@Y ~ $ sudo eopkg install sdl2-image-32bit
The following package(s) are already installed and are not going to be installed again:
sdl2-image-32bit
No packages to install.

Indeed in /var/lib/eopkg/package there is

sdl2-image-32bit-2.0.1-3/metadata.xml

Instead, the error message quotes

sdl2-image-32bit-5.1.14-7/metadata.xml

try to rebuild the database.

sudo eopkg rdb

Thanks Tristan. Unfortunately, it didn't work:

X@Y ~ $ sudo eopkg rdb
Rebuild eopkg databases? (yes/no)y
Adding 'appstream-glib' to db... OK.

[etc.]

Adding 'libdvdread' to db... OK.
Adding 'libxi-32bit' to db... OK.
Adding 'xcb-util-image' to db... OK.
Adding 'sdl2-image-32bit' to db... No handlers could be found for logger "pisi"
Program terminated.
Unable to read file (/var/lib/eopkg/package/sdl2-image-32bit-5.1.14-7/files.xml): [Errno 2] No such file or directory: '/var/lib/eopkg/package/sdl2-image-32bit-5.1.14-7/files.xml'
Please use 'eopkg help' for general help.

My folder is named sdl2-image-32bit-2.0.1-3. Your version number seems to be hugely incorrect unless you compiled the program from source or you are running on the unstable repo. My next suggestion would be renaming the folder to the one I wrote above. But first make sure that folder doesn't already exist. It could be that a random folder got generated with a wacky version number. In that case, delete your version of the 5.1.14-7 folder and see if that made a difference.

First off I'm definitely not using the unstable repository:

~ $ eopkg lr
Solus [active]
   https://packages.solus-project.com/shannon/eopkg-index.xml.xz

Second, the point is that I have the folder, like you, called

sdl2-image-32bit-2.0.1-3

but eopkg is looking for

sdl2-image-32bit-5.1.14-7

which doesn't exist in my /var/lib/eopkg/package:

/var/lib/eopkg/package $ ls sdl2*
sdl2-2.0.5-6:
files.xml  metadata.xml

sdl2-32bit-2.0.5-6:
files.xml  metadata.xml

sdl2-gfx-1.0.1-2:
files.xml  metadata.xml

sdl2-gfx-32bit-1.0.1-2:
files.xml  metadata.xml

sdl2-image-2.0.1-3:
files.xml  metadata.xml

sdl2-image-32bit-2.0.1-3:
files.xml  metadata.xml

sdl2-mixer-2.0.0-3:
files.xml  metadata.xml

sdl2-mixer-32bit-2.0.0-3:
files.xml  metadata.xml

sdl2-net-2.0.1-2:
files.xml  metadata.xml

sdl2-net-32bit-2.0.1-2:
files.xml  metadata.xml

I tried to look for something with "5.1.14-7" in /var/.../package and came up with:

/var/lib/eopkg/package $ ls *5.1.14-7*
kerberos-32bit-5.1.14-7:
files.xml  metadata.xml

kerberos-5.1.14-7:
files.xml  metadata.xml

Could eopkg have, somehow, got the versions of "kerberos-32bit" and "sdl2-image-32bit" confused and what file would I have to edit to correct that?

I wonder if eopkg has a file where all packages are listed like a plain text file. Maybe somehow a line with that unknown package got added. I'm lost. I don't have a folder like that.

Right, I fixed it.

First, I changed the directory name to what it was looking for:

sudo mv sdl2-image-32bit-2.0.1-3 sdl2-image-32bit-5.1.14-7

Now eopkg li, for example, worked without problems so I tried to uninstall and then reinstall:

/var/lib/eopkg/package $ sudo eopkg rm sdl2-image-32bit
The following list of packages will be removed
in the respective order to satisfy dependencies:
steam sdl2-image-32bit 
Do you want to continue? (yes/no)y
Removing package steam
Running pre removal operations for steam
Running post removal operations for steam
Removed steam
Removing package sdl2-image-32bit
Running pre removal operations for sdl2-image-32bit
Running post removal operations for sdl2-image-32bit
Program terminated.
Script error: tr.org.pardus.comar.OSError: (2, 'No such file or directory', '/var/lib/eopkg/package/sdl2-image-32bit-2.0.1-3/files.xml')

but to do that I seemed to have to change the directory name back and then it worked:

/var/lib/eopkg/package $ sudo eopkg rm sdl2-image-32bit
The following list of packages will be removed
in the respective order to satisfy dependencies:
sdl2-image-32bit 
Removing package sdl2-image-32bit
Running pre removal operations for sdl2-image-32bit
Installed file /usr/lib32/libSDL2_image-2.0.so.0 does not exist on system [Probably you manually deleted]
Installed file /usr/lib32/libSDL2_image-2.0.so.0.0.1 does not exist on system [Probably you manually deleted]
Running post removal operations for sdl2-image-32bit
Removed sdl2-image-32bit

Nice job. Very weird error to begin with!

dont know if this is of any help, but.. installed brasero per software center without any messages and burned a dvd with a solus iso right after that (successfully).

The problem was nothing to do with Brasero; that just happened to be the program I was trying to install from the software centre when it wouldn't work, as I described in previous posts.

P.S. I was also burning a DVD to pass on Solus

DataDrake claimed this task.