FS#18051 - [bash] 4.1.002-1 broke my system i686
Attached to Project:
Arch Linux
Opened by Jarosław Górny (jaroslav) - Thursday, 28 January 2010, 12:14 GMT
Last edited by Allan McRae (Allan) - Sunday, 31 January 2010, 12:23 GMT
Opened by Jarosław Górny (jaroslav) - Thursday, 28 January 2010, 12:14 GMT
Last edited by Allan McRae (Allan) - Sunday, 31 January 2010, 12:23 GMT
|
Details
Description:
After todays system upgrade my system became unusable: during bash package activation phase: sh: symbol lookup error: sh: undefined symbol: rl_filename_rewrite_hook błąd: komenda nie wykonała się poprawnie sh: symbol lookup error: sh: undefined symbol: rl_filename_rewrite_hook błąd: komenda nie wykonała się poprawnie Additional info: * package version(s) 4.1.002-1 Steps to reproduce: Install bash package in this version. |
This task depends upon
Closed by Allan McRae (Allan)
Sunday, 31 January 2010, 12:23 GMT
Reason for closing: Fixed
Additional comments about closing: bash-4.1.002-2 in [testing] waiting for signoff
Sunday, 31 January 2010, 12:23 GMT
Reason for closing: Fixed
Additional comments about closing: bash-4.1.002-2 in [testing] waiting for signoff
By the way: where can I find previous version of bash? Maybe this will help me to recover from this.
[root@masala Download]# LANG= pacman -S readline
readline package not found, searching for group...
error: 'readline': not found in sync db
[root@masala Download]# LANG= pacman -Q readline
readline 6.0.004-1
If this is the case, bash package should REQUIRE this particular version of readline.
Thanks to: http://www.schlunix.org/archlinux/core/os/i686/ I was able to downgrade to older version of bash.
>
> [root@masala Download]# LANG= pacman -S readline
readline package not found, searching for group...
error: 'readline': not found in sync db
Rather seems to be a problem with your database. There should _always_ be a readline package in core. Try to run 'pacman -Syy' and check again for readline 'pacman -Si readline'.
Name : bash
Version : 4.1.002-1
...
Depends On : readline>=6.0 glibc
So this is a bug here.
2. I did upgrade with 'pacman -Syuv' like You say.
3. There's always a chance that something goes wrong - just like in my case. That's why providing correct dependencies is so crucial. If the dependencies in bash were correct I wouldn't have this issue because bash would be simply not upgraded at all.
However, this does not change anything: the bug still exists - bash 4.1.002-1 package has wrong (out-dated) dependency.
DB corruption only triggered this bug (otherwise I woudn't notice this at all).
INIT: version 2.86 booting
/bin/bash: symbol lookup error: /bin/bash: undefined symbol: rl_filename_rewrite_hook
INIT: Entering runlevel: 3
/bin/bash: symbol lookup error: /bin/bash: undefined symbol: rl_filename_rewrite_hook
INIT: Id "c5" respawning too fast: disabled for 5 minutes
# 5 similar lines for c1, c4, c2, c3 and c6
INIT: no more processes left in this runlevel
A fix would be really welcome.
i tried a dirty fix and it worked:
- boot from another media (i tried sysrescd from a sd card)
- mounted the system root in a temporary folder
- made a backup of the bash binary
- copied the bash binary (/bin/bash) from sysrescd to the system (yes, i know.. it's dirty)
rebooted, and it works
i had to do a 'pacman -Syy' to be able to update readline, then i force-reinstalled bash
everything seems ok now
hope it helped
1. mount /dev/my_root_partition /mnt/arch
2. pacman -Syy && pacman -S bash readline
3. for i in $(pacman -Ql bash readline | awk '{print $2}'); cp $i /mnt/arch/$i; done
Rebooted, started the Arch installed on the HDD and
4. pacman -S --force bash readline
HTH.