Случайно переименовал файл в centos 5 в папке / lib, понятия не имею, как он назывался, как узнать?

887
Shackrock

Случайно переименовал файл в centos 5 в папке / lib, понятия не имею, как он назывался, как узнать?

На изображении выше я случайно переименовал файл, lи я понятия не имею, что это было в первую очередь. Он отсортирован по имени, и я на 99% уверен, что он начался с буквы L, скорее всего lib ....

И к вашему сведению: Отмена была недоступна для этого действия.

Вот некоторый код по запросу:

[root@server ~]# file /usr/bin/* | grep "32-bit" /usr/bin/gdk-pixbuf-query-loaders-32: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.6.9, dynamically linked (uses shared libs), stripped /usr/bin/gtk-query-immodules-2.0-32: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.6.9, dynamically linked (uses shared libs), stripped /usr/bin/mbchk: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.6.9, statically linked, stripped /usr/bin/pango-querymodules-32: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.6.9, dynamically linked (uses shared libs), stripped 

15:55 Обновление:

[root@server ~]# rpm -qa | grep -i lsb redhat-lsb-4.0-2.1.4.el5 redhat-lsb-4.0-2.1.4.el5   [root@server ~]# rpm -ql redhat-lsb-4.0-2.1.4.el5 | grep "/lib" /lib/ld-lsb.so.3 /lib/lsb /lib/lsb/init-functions /usr/lib/lsb /usr/lib/lsb/install_initd /usr/lib/lsb/remove_initd /lib/lsb /lib/lsb/init-functions /lib64/ld-lsb-x86-64.so.3 /usr/lib/lsb /usr/lib/lsb/install_initd /usr/lib/lsb/remove_initd 

Как я могу узнать, какое имя папки было раньше?

0
Вы сделали это через терминал? Если да, пытались ли вы проверить команду `history`, чтобы увидеть, что вы сделали` mv xl`? nerdwaller 11 лет назад 0
@nerdwaller, к сожалению, нет, это было через графический интерфейс с SSH Secure Shell, такой же, как показано на этом img. Shackrock 11 лет назад 0
ОК, вы можете запустить `mbchk -v`. Если он работает, он скажет вам свою версию. Так что будем надеяться, что это * не * сработает :-) LSerni 11 лет назад 0
`[root @ server ~] # mbchk -v mbchk (GNU GRUB 0.97)` Другой собеседник попросил выполнить эту команду, посмотрите: `[root @ server ~] # diff /lib/ld-2.5.so / lib / l [root @ server ~] # `(с этим ничего не случилось) Shackrock 11 лет назад 0
Ничего не должно случиться. Мы уже знаем, что это символическая ссылка, поэтому файлы идентичны. К сожалению, я проверил, и удаление ссылки * не * отключает 32-битные исполняемые файлы, как я думал, поэтому мой тест не работает. Придумывать другое. LSerni 11 лет назад 0
@ lserni спасибо. Я вернусь через 15 минут, к сожалению, у меня есть быстрый звонок для моей дневной работы =). Спасибо вам за помощь! Shackrock 11 лет назад 0
@lserni Хорошо, я думаю, что ответом должно быть имя файла: `ld-lsb.so.3` - как вы думаете, это правильно? Shackrock 11 лет назад 0
Да, я согласен. Извините за задержку, мне пришлось взять некоторые калории :-) LSerni 11 лет назад 1
@ lserni, если это не так, что я замечу? ха-ха ... Shackrock 11 лет назад 0
Я бы сказал, что такие проблемы - http://forums.freebsd.org/showthread.php?t=24905 - но, возможно, только после перезагрузки. LSerni 11 лет назад 0

2 ответа на вопрос

1
LSerni

It is a symbolic link, and probably to ld-2.5.so (note the same date and file size as ld-linux).

If you can get hold of a CentOS somewhere, just run ls -la /lib | grep ld-2.5 and you will find some links, among which the one you are missing.

Not having a CentOS 5 available I can't say for sure, but possibly ld-lsb.so.2 or ld-lsb.so.3.

So first let's make sure you do have the lsb package installed.

$ rpm -qa | grep -i lsb 

or $ sudo yum list installed | grep -i lsb

You should have something like "redhat-lsb" (or "something-lsb") in there. If you do, then list its contents and see what files does it have in "/lib".

$ rpm -ql nameofpackage | grep "/lib" 

or $ repoquery --list nameofpackage

One of those should be /lib/ld-lsb-something. (If repoquery does not work, you need to install yum-utils: sudo yum install yum-utils first).

Только что один хороший парень сказал мне сделать `ls -ls` для файла` lib / l`, и он сообщает: `0 lrwxrwxrwx 1 root root 13 Jan 17 00:12 lib / l -> ld-linux.so.2 `это значит, что это правильное имя? Shackrock 11 лет назад 0
Нет, это означает, что * это * символическая ссылка на файл, который я подозревал, но он по-прежнему не говорит, каким * было * исходное имя файла (это точка символической ссылки). Но я искал, и, очевидно, CentOS имеет поддержку `ld-lsb.so.2`, поэтому у вас * должен * быть файл, сообщающий об этом размере и дате и называемый` ld-lsb.so.2`. Из упорядоченного списка имен файлов вы этого не сделаете. Так что почти уверен, что это имя вам нужно. LSerni 11 лет назад 0
Я думаю, что вы правы, это помогает? `[root @ server ~] # rpm -qil glibc | grep ld- /lib64/ld-2.5.so /lib64/ld-linux-x86-64.so.2 /lib/ld-2.5.so / lib / ld-linux.so.2` и `[root @ server ~] # ls -la / lib | grep ld-2.5 -rwxr-xr-x 1 корневой корень 130860 8 января 08:33 ld-2.5.so lrwxrwxrwx 1 корневой корень 9 января 17 00:08 ld-linux.so.2 -> ld-2.5.so` Shackrock 11 лет назад 0
К сожалению, нет, загрузчик (если это загрузчик) устанавливается пакетом LSB, а не пакетом glibc. Но я взломал тест, чтобы проверить, верна ли моя догадка. LSerni 11 лет назад 0
Хорошо, см. Выше вернуться к вопросу, какой я должен использовать? К сожалению, я не знаю, что из этого делает Shackrock 11 лет назад 0
Посмотрите на обновленный вопрос с выводом кода. Shackrock 11 лет назад 0
Хорошо, затем выполните `rpm -qf ld-linux.so.2`, это скажет вам, к какому пакету принадлежит этот файл (и предположительно ссылка, поскольку это« библиотека »). Учитывая это, сделайте `yum переустановить`. После этого вы можете удалить свой поддельный `l`. vonbrand 11 лет назад 0
0
user201413

It may be painful but try this. It should tell you about all files modified/missing from their original install (including config files).

rpm -qa --verify | grep missing 

Hopefully you only have one lib file missing.

Почему больно, просто потому, что это занимает некоторое время? Shackrock 11 лет назад 0

Похожие вопросы