Почему отсутствует /lib/libc.so.6?

Поместите путь между кавычками

ex: "/path to/my folder/"

или поместите обратную косую черту перед специальным символом

ex: /path\ to/my\ folder/ [!d4 ]

19
задан 5 May 2011 в 22:00

27 ответов

libc.so был перемещен как часть многоуровневой работы в Ubuntu 11.04. Причина, по которой не может быть символической ссылки, заключается в том, что цель multiarch заключается в том, чтобы установить одновременно i386 и amd64 версии libc в одно и то же время, чтобы вы могли запускать 32-разрядные проще в 64-битных системах и наоборот (и в других подобных ситуациях). Если пакет libc6 содержал символическую ссылку на новое местоположение, то версии этого пакета для разных архитектур не были бы одновременно установлены (какая версия символической ссылки будет выбрана dpkg?), Победив весь

Все, что жестко кодирует путь к libc.so, должно быть обновлено для правильной работы с Ubuntu 11.04 и далее. Если скрипт, о котором вы говорите, является частью Ubuntu, сообщите об ошибке и добавьте тег multiarch.

21
ответ дан 25 May 2018 в 21:26
  • 1
    Хороший ответ, узнал что-то новое сегодня (опять) :) – Lekensteyn 6 May 2011 в 01:00
  • 2
    Процессор, который я использую, даже не поддерживает 64-битные инструкции. Не могли бы вы сказать, что существует риск связать с добавлением символической ссылки вручную? Не уверен, что мне нужно это сделать, но если. Во всяком случае, это, кажется, правильный ответ. Благодарю. – Erik B 6 May 2011 в 01:30
  • 3
    @ Эрик Б: Что? Вы говорите мне, что пытаетесь использовать 64-битное приложение на 32-битном процессоре? Это определенно не будет работать. 32-разрядные приложения отлично работают на 64-битном процессоре, но не наоборот. – Lekensteyn 6 May 2011 в 12:41
  • 4
    @Lekensteyn, это определенно не то, что я говорю. Я говорю о том, что мне не нужна библиотека 64 бит. Поэтому в моей конкретной системе не будет какой-либо путаницы в отношении того, является ли /lib/libc.so.6 32 или 64-битной библиотекой. – Erik B 6 May 2011 в 12:53
  • 5
    Если вы никогда не собираетесь использовать 64-битные пакеты, я сомневаюсь, что существует значительный риск добавления символической ссылки, нет. – Colin Watson 6 May 2011 в 12:58

libc.so был перемещен как часть многоуровневой работы в Ubuntu 11.04. Причина, по которой не может быть символической ссылки, заключается в том, что цель multiarch заключается в том, чтобы установить одновременно i386 и amd64 версии libc одновременно, чтобы вы могли запускать 32-разрядные проще в 64-битных системах и наоборот (и в других подобных ситуациях). Если пакет libc6 содержал символическую ссылку на новое местоположение, то версии этого пакета для разных архитектур не были бы одновременно установлены (какая версия символической ссылки будет выбрана dpkg?), Победив весь

Все, что жестко кодирует путь к libc.so, должно быть обновлено для правильной работы с Ubuntu 11.04 и далее. Если скрипт, о котором вы говорите, является частью Ubuntu, сообщите об ошибке и добавьте тег multiarch.

21
ответ дан 25 July 2018 в 22:01

libc.so был перемещен как часть многоуровневой работы в Ubuntu 11.04. Причина, по которой не может быть символической ссылки, заключается в том, что цель multiarch заключается в том, чтобы установить одновременно i386 и amd64 версии libc в одно и то же время, чтобы вы могли запускать 32-разрядные проще в 64-битных системах и наоборот (и в других подобных ситуациях). Если пакет libc6 содержал символическую ссылку на новое местоположение, то версии этого пакета для разных архитектур не были бы одновременно установлены (какая версия символической ссылки будет выбрана dpkg?), Победив весь

Все, что жестко кодирует путь к libc.so, должно быть обновлено для правильной работы с Ubuntu 11.04 и далее. Если скрипт, о котором вы говорите, является частью Ubuntu, сообщите об ошибке и добавьте тег multiarch.

21
ответ дан 26 July 2018 в 18:23

libc.so был перемещен как часть многоуровневой работы в Ubuntu 11.04. Причина, по которой не может быть символической ссылки, заключается в том, что цель multiarch заключается в том, чтобы установить одновременно i386 и amd64 версии libc одновременно, чтобы вы могли запускать 32-разрядные проще в 64-битных системах и наоборот (и в других подобных ситуациях). Если пакет libc6 содержал символическую ссылку на новое местоположение, то версии этого пакета для разных архитектур не были бы одновременно установлены (какая версия символической ссылки будет выбрана dpkg?), Победив весь

Все, что жестко кодирует путь к libc.so, должно быть обновлено для правильной работы с Ubuntu 11.04 и далее. Если скрипт, о котором вы говорите, является частью Ubuntu, сообщите об ошибке и добавьте тег multiarch.

21
ответ дан 2 August 2018 в 03:33

libc.so был перемещен как часть многоуровневой работы в Ubuntu 11.04. Причина, по которой не может быть символической ссылки, заключается в том, что цель multiarch заключается в том, чтобы установить одновременно i386 и amd64 версии libc одновременно, чтобы вы могли запускать 32-разрядные проще в 64-битных системах и наоборот (и в других подобных ситуациях). Если пакет libc6 содержал символическую ссылку на новое местоположение, то версии этого пакета для разных архитектур не были бы одновременно установлены (какая версия символической ссылки будет выбрана dpkg?), Победив весь

Все, что жестко кодирует путь к libc.so, должно быть обновлено для правильной работы с Ubuntu 11.04 и далее. Если скрипт, о котором вы говорите, является частью Ubuntu, сообщите об ошибке и добавьте тег multiarch.

21
ответ дан 4 August 2018 в 19:33

libc.so был перемещен как часть работы multiarch в Ubuntu 11.04. Причина, по которой не может быть символической ссылки, заключается в том, что цель multiarch заключается в том, чтобы установить обе версии i386 и amd64 libc [ ! d4] в то же время, чтобы вы могли легче запускать 32-разрядные двоичные файлы в 64-битных системах и наоборот (и в других подобных ситуациях). Если в пакете libc6 содержалась символическая ссылка на новое местоположение, то версии этого пакета для разных архитектур не были бы одновременно доступны для установки (какая версия символической ссылки будет dpkg [ ! d6] pick?), победив всю точку упражнения.

Все, что жестко кодирует путь к libc.so , должно быть обновлено для правильной работы с Ubuntu 11.04 и далее. Если скрипт, о котором вы говорите, является частью Ubuntu, сообщите об ошибке и добавьте тег multiarch .

21
ответ дан 6 August 2018 в 03:41

libc.so был перемещен как часть работы multiarch в Ubuntu 11.04. Причина, по которой не может быть символической ссылки, заключается в том, что цель multiarch заключается в том, чтобы установить обе версии i386 и amd64 libc [ ! d4] в то же время, чтобы вы могли легче запускать 32-разрядные двоичные файлы в 64-битных системах и наоборот (и в других подобных ситуациях). Если в пакете libc6 содержалась символическая ссылка на новое местоположение, то версии этого пакета для разных архитектур не были бы одновременно доступны для установки (какая версия символической ссылки будет dpkg [ ! d6] pick?), победив всю точку упражнения.

Все, что жестко кодирует путь к libc.so , должно быть обновлено для правильной работы с Ubuntu 11.04 и далее. Если скрипт, о котором вы говорите, является частью Ubuntu, сообщите об ошибке и добавьте тег multiarch .

21
ответ дан 7 August 2018 в 21:33

libc.so был перемещен как часть работы multiarch в Ubuntu 11.04. Причина, по которой не может быть символической ссылки, заключается в том, что цель multiarch заключается в том, чтобы установить обе версии i386 и amd64 libc [ ! d4] в то же время, чтобы вы могли легче запускать 32-разрядные двоичные файлы в 64-битных системах и наоборот (и в других подобных ситуациях). Если в пакете libc6 содержалась символическая ссылка на новое местоположение, то версии этого пакета для разных архитектур не были бы одновременно доступны для установки (какая версия символической ссылки будет dpkg [ ! d6] pick?), победив всю точку упражнения.

Все, что жестко кодирует путь к libc.so , должно быть обновлено для правильной работы с Ubuntu 11.04 и далее. Если скрипт, о котором вы говорите, является частью Ubuntu, сообщите об ошибке и добавьте тег multiarch .

21
ответ дан 10 August 2018 в 09:49

libc.so был перемещен как часть работы multiarch в Ubuntu 11.04. Причина, по которой не может быть символической ссылки, заключается в том, что цель multiarch заключается в том, чтобы установить обе версии i386 и amd64 libc [ ! d4] в то же время, чтобы вы могли легче запускать 32-разрядные двоичные файлы в 64-битных системах и наоборот (и в других подобных ситуациях). Если в пакете libc6 содержалась символическая ссылка на новое местоположение, то версии этого пакета для разных архитектур не были бы одновременно доступны для установки (какая версия символической ссылки будет dpkg [ ! d6] pick?), победив всю точку упражнения.

Все, что жестко кодирует путь к libc.so , должно быть обновлено для правильной работы с Ubuntu 11.04 и далее. Если скрипт, о котором вы говорите, является частью Ubuntu, сообщите об ошибке и добавьте тег multiarch .

21
ответ дан 13 August 2018 в 16:04
  • 1
    Хороший ответ, узнал что-то новое сегодня (опять) :) – Lekensteyn 6 May 2011 в 01:00
  • 2
    Процессор, который я использую, даже не поддерживает 64-битные инструкции. Не могли бы вы сказать, что существует риск связать с добавлением символической ссылки вручную? Не уверен, что мне нужно это сделать, но если. Во всяком случае, это, кажется, правильный ответ. Благодарю. – Erik B 6 May 2011 в 01:30
  • 3
    @ Эрик Б: Что? Вы говорите мне, что пытаетесь использовать 64-битное приложение на 32-битном процессоре? Это определенно не будет работать. 32-разрядные приложения отлично работают на 64-битном процессоре, но не наоборот. – Lekensteyn 6 May 2011 в 12:41
  • 4
    @Lekensteyn, это определенно не то, что я говорю. Я говорю о том, что мне не нужна библиотека 64 бит. Поэтому на моей конкретной системе не будет никакой путаницы в том, является ли /lib/libc.so.6 32 или 64-битной библиотекой. – Erik B 6 May 2011 в 12:53
  • 5
    Если вы никогда не собираетесь использовать 64-битные пакеты, я сомневаюсь, что существует значительный риск добавления символической ссылки, нет. – Colin Watson 6 May 2011 в 12:58

Динамические библиотеки загружаются ядром, пути не жестко запрограммированы в программе. Программа просто говорит: «Мне нужно libc.so.6». Затем система выполняет поиск по путям библиотек, как определено в /etc/ld.so.conf, включая /usr/lib и /lib по умолчанию. Этот файл содержит дополнительные файлы конфигурации в /etc/ld.so.conf.d.

В моей 64-битной системе libc.so.6 можно найти в /lib/x86_64-linux-gnu/libc.so.6 из-за пути, определенного в /etc/ld.so.conf.d/x86_64-linux-gnu.conf:

# Multiarch support
/lib/x86_64-linux-gnu
/usr/lib/x86_64-linux-gnu
]

Чтобы узнать, какая библиотека загружена программой, используйте ldd, как в ldd /bin/bash:

    linux-vdso.so.1 =>  (0x00007ffff1dff000)
    libncurses.so.5 => /lib/libncurses.so.5 (0x00007f9d8b3b8000)
    libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f9d8b1b4000)
    libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f9d8ae1f000)
    /lib64/ld-linux-x86-64.so.2 (0x00007f9d8b61c000)

Помещение символической ссылки ничего не сломает.

Чтобы получить список каталогов, которые были найдены, запустите:

ldconfig -v -N | grep '^/'

-v приводит к отображению списка файлов + каталогов, -N предотвращает воссоздание кеша (/etc/ld.so.cache) .

9
ответ дан 25 May 2018 в 21:26
  • 1
    Помещение символической ссылки ничего не сломало бы, но на самом деле это тоже не принесло бы ничего хорошего, верно? – Erik B 5 May 2011 в 22:33
  • 2
    @Erik B: на какую программу / скрипт вы ссылаетесь? Я понимаю, что скрипт запутался, потому что путь жестко запрограммирован. Но программе не нужно знать путь. – Lekensteyn 5 May 2011 в 22:38
  • 3
    Так оно работает? Иногда у меня возникают проблемы, когда программы не могут найти библиотеки, установленные в /usr/local/lib, но они отлично работают, если я создаю символическую ссылку из /usr/lib. Что вызывает такое поведение? – crazy2be 6 May 2011 в 04:33
  • 4
    @ crazy2be: можете ли вы опубликовать вывод ldconfig -v -N | grep '^/'? – Lekensteyn 6 May 2011 в 12:42
  • 5
    @Lekensteyn: Конечно: pastebin.com/dtfnw2Tv . Однако это случилось с некоторыми программами практически для любой системы, которую я использовал, поэтому я предположил, что она не связана с конфигурацией системы. – crazy2be 7 May 2011 в 07:57

Просто добавьте символическую ссылку в файл libc.so.6 следующим образом:

sudo ln -s /lib/i386-linux-gnu/libc.so.6 /lib/libc.so.6

То же самое касается других отсутствующих файлов, которые все еще находятся в системе, в моем случае Matlab отсутствовал в файле, проблема теперь нет.

5
ответ дан 25 May 2018 в 21:26

Динамические библиотеки загружаются ядром, пути не жестко запрограммированы в программе. Программа просто говорит: «Мне нужно libc.so.6». Затем система выполняет поиск по путям библиотек, как определено в /etc/ld.so.conf, включая /usr/lib и /lib по умолчанию. Этот файл содержит дополнительные файлы конфигурации в /etc/ld.so.conf.d.

В моей 64-битной системе libc.so.6 можно найти в /lib/x86_64-linux-gnu/libc.so.6 из-за пути, определенного в /etc/ld.so.conf.d/x86_64-linux-gnu.conf:

# Multiarch support /lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu ]

Чтобы узнать, какая библиотека загружена программой, используйте ldd, как в ldd /bin/bash:

linux-vdso.so.1 => (0x00007ffff1dff000) libncurses.so.5 => /lib/libncurses.so.5 (0x00007f9d8b3b8000) libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f9d8b1b4000) libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f9d8ae1f000) /lib64/ld-linux-x86-64.so.2 (0x00007f9d8b61c000)

Помещение символической ссылки ничего не сломает.

Чтобы получить список каталогов, которые были найдены, запустите:

ldconfig -v -N | grep '^/'

-v приводит к отображению списка файлов + каталогов, -N предотвращает воссоздание кеша (/etc/ld.so.cache) .

9
ответ дан 25 July 2018 в 22:01
  • 1
    Помещение символической ссылки ничего не сломало бы, но на самом деле это тоже не принесло бы ничего хорошего, верно? – Erik B 5 May 2011 в 22:33
  • 2
    @Erik B: на какую программу / скрипт вы ссылаетесь? Я понимаю, что скрипт запутался, потому что путь жестко запрограммирован. Но программе не нужно знать путь. – Lekensteyn 5 May 2011 в 22:38
  • 3
    Так оно работает? Иногда у меня возникают проблемы, когда программы не могут найти библиотеки, установленные в /usr/local/lib, но они отлично работают, если я создаю символическую ссылку из /usr/lib. Что вызывает такое поведение? – crazy2be 6 May 2011 в 04:33
  • 4
    @ crazy2be: можете ли вы опубликовать вывод ldconfig -v -N | grep '^/'? – Lekensteyn 6 May 2011 в 12:42
  • 5
    @Lekensteyn: Конечно: pastebin.com/dtfnw2Tv . Однако это случилось с некоторыми программами практически для любой системы, которую я использовал, поэтому я предположил, что она не связана с конфигурацией системы. – crazy2be 7 May 2011 в 07:57

Просто добавьте символическую ссылку в файл libc.so.6 следующим образом:

sudo ln -s /lib/i386-linux-gnu/libc.so.6 /lib/libc.so.6

То же самое касается других отсутствующих файлов, которые все еще находятся в системе, в моем случае Matlab отсутствовал в файле, проблема теперь нет.

5
ответ дан 25 July 2018 в 22:01

Динамические библиотеки загружаются ядром, пути не жестко запрограммированы в программе. Программа просто говорит: «Мне нужно libc.so.6». Затем система выполняет поиск по путям библиотек, как определено в /etc/ld.so.conf, включая /usr/lib и /lib по умолчанию. Этот файл содержит дополнительные файлы конфигурации в /etc/ld.so.conf.d.

В моей 64-битной системе libc.so.6 можно найти в /lib/x86_64-linux-gnu/libc.so.6 из-за пути, определенного в /etc/ld.so.conf.d/x86_64-linux-gnu.conf:

# Multiarch support /lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu ]

Чтобы узнать, какая библиотека загружена программой, используйте ldd, как в ldd /bin/bash:

linux-vdso.so.1 => (0x00007ffff1dff000) libncurses.so.5 => /lib/libncurses.so.5 (0x00007f9d8b3b8000) libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f9d8b1b4000) libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f9d8ae1f000) /lib64/ld-linux-x86-64.so.2 (0x00007f9d8b61c000)

Помещение символической ссылки ничего не сломает.

Чтобы получить список каталогов, которые были найдены, запустите:

ldconfig -v -N | grep '^/'

-v приводит к отображению списка файлов + каталогов, -N предотвращает воссоздание кеша (/etc/ld.so.cache) .

9
ответ дан 26 July 2018 в 18:23
  • 1
    Помещение символической ссылки ничего не сломало бы, но на самом деле это тоже не принесло бы ничего хорошего, верно? – Erik B 5 May 2011 в 22:33
  • 2
    @Erik B: на какую программу / скрипт вы ссылаетесь? Я понимаю, что скрипт запутался, потому что путь жестко запрограммирован. Но программе не нужно знать путь. – Lekensteyn 5 May 2011 в 22:38
  • 3
    Так оно работает? Иногда у меня возникают проблемы, когда программы не могут найти библиотеки, установленные в /usr/local/lib, но они отлично работают, если я создаю символическую ссылку из /usr/lib. Что вызывает такое поведение? – crazy2be 6 May 2011 в 04:33
  • 4
    @ crazy2be: можете ли вы опубликовать вывод ldconfig -v -N | grep '^/'? – Lekensteyn 6 May 2011 в 12:42
  • 5
    @Lekensteyn: Конечно: pastebin.com/dtfnw2Tv . Однако это случилось с некоторыми программами практически для любой системы, которую я использовал, поэтому я предположил, что она не связана с конфигурацией системы. – crazy2be 7 May 2011 в 07:57

Просто добавьте символическую ссылку в файл libc.so.6 следующим образом:

sudo ln -s /lib/i386-linux-gnu/libc.so.6 /lib/libc.so.6

То же самое касается других отсутствующих файлов, которые все еще находятся в системе, в моем случае Matlab отсутствовал в файле, проблема теперь нет.

5
ответ дан 26 July 2018 в 18:23

Динамические библиотеки загружаются ядром, пути не жестко запрограммированы в программе. Программа просто говорит: «Мне нужно libc.so.6». Затем система выполняет поиск по путям библиотек, как определено в /etc/ld.so.conf, включая /usr/lib и /lib по умолчанию. Этот файл содержит дополнительные файлы конфигурации в /etc/ld.so.conf.d.

В моей 64-битной системе libc.so.6 можно найти в /lib/x86_64-linux-gnu/libc.so.6 из-за пути, определенного в /etc/ld.so.conf.d/x86_64-linux-gnu.conf:

# Multiarch support /lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu ]

Чтобы узнать, какая библиотека загружена программой, используйте ldd, как в ldd /bin/bash:

linux-vdso.so.1 => (0x00007ffff1dff000) libncurses.so.5 => /lib/libncurses.so.5 (0x00007f9d8b3b8000) libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f9d8b1b4000) libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f9d8ae1f000) /lib64/ld-linux-x86-64.so.2 (0x00007f9d8b61c000)

Помещение символической ссылки ничего не сломает.

Чтобы получить список каталогов, которые были найдены, запустите:

ldconfig -v -N | grep '^/'

-v приводит к отображению списка файлов + каталогов, -N предотвращает воссоздание кеша (/etc/ld.so.cache) .

9
ответ дан 2 August 2018 в 03:33
  • 1
    Помещение символической ссылки ничего не сломало бы, но на самом деле это тоже не принесло бы ничего хорошего, верно? – Erik B 5 May 2011 в 22:33
  • 2
    @Erik B: на какую программу / скрипт вы ссылаетесь? Я понимаю, что скрипт запутался, потому что путь жестко запрограммирован. Но программе не нужно знать путь. – Lekensteyn 5 May 2011 в 22:38
  • 3
    Так оно работает? Иногда у меня возникают проблемы, когда программы не могут найти библиотеки, установленные в /usr/local/lib, но они отлично работают, если я создаю символическую ссылку из /usr/lib. Что вызывает такое поведение? – crazy2be 6 May 2011 в 04:33
  • 4
    @ crazy2be: можете ли вы опубликовать вывод ldconfig -v -N | grep '^/'? – Lekensteyn 6 May 2011 в 12:42
  • 5
    @Lekensteyn: Конечно: pastebin.com/dtfnw2Tv . Однако это случилось с некоторыми программами практически для любой системы, которую я использовал, поэтому я предположил, что она не связана с конфигурацией системы. – crazy2be 7 May 2011 в 07:57

Просто добавьте символическую ссылку в файл libc.so.6 следующим образом:

sudo ln -s /lib/i386-linux-gnu/libc.so.6 /lib/libc.so.6

То же самое касается других отсутствующих файлов, которые все еще находятся в системе, в моем случае Matlab отсутствовал в файле, проблема теперь нет.

5
ответ дан 2 August 2018 в 03:33

Динамические библиотеки загружаются ядром, пути не жестко запрограммированы в программе. Программа просто говорит: «Мне нужно libc.so.6». Затем система выполняет поиск по путям библиотек, как определено в /etc/ld.so.conf, включая /usr/lib и /lib по умолчанию. Этот файл содержит дополнительные файлы конфигурации в /etc/ld.so.conf.d.

В моей 64-битной системе libc.so.6 можно найти в /lib/x86_64-linux-gnu/libc.so.6 из-за пути, определенного в /etc/ld.so.conf.d/x86_64-linux-gnu.conf:

# Multiarch support /lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu ]

Чтобы узнать, какая библиотека загружена программой, используйте ldd, как в ldd /bin/bash:

linux-vdso.so.1 => (0x00007ffff1dff000) libncurses.so.5 => /lib/libncurses.so.5 (0x00007f9d8b3b8000) libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f9d8b1b4000) libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f9d8ae1f000) /lib64/ld-linux-x86-64.so.2 (0x00007f9d8b61c000)

Помещение символической ссылки ничего не сломает.

Чтобы получить список каталогов, которые были найдены, запустите:

ldconfig -v -N | grep '^/'

-v приводит к отображению списка файлов + каталогов, -N предотвращает воссоздание кеша (/etc/ld.so.cache) .

9
ответ дан 4 August 2018 в 19:33
  • 1
    Помещение символической ссылки ничего не сломало бы, но на самом деле это тоже не принесло бы ничего хорошего, верно? – Erik B 5 May 2011 в 22:33
  • 2
    @Erik B: на какую программу / скрипт вы ссылаетесь? Я понимаю, что скрипт запутался, потому что путь жестко запрограммирован. Но программе не нужно знать путь. – Lekensteyn 5 May 2011 в 22:38
  • 3
    Так оно работает? Иногда у меня возникают проблемы, когда программы не могут найти библиотеки, установленные в /usr/local/lib, но они отлично работают, если я создаю символическую ссылку из /usr/lib. Что вызывает такое поведение? – crazy2be 6 May 2011 в 04:33
  • 4
    @ crazy2be: можете ли вы опубликовать вывод ldconfig -v -N | grep '^/'? – Lekensteyn 6 May 2011 в 12:42
  • 5
    @Lekensteyn: Конечно: pastebin.com/dtfnw2Tv . Однако это случилось с некоторыми программами практически для любой системы, которую я использовал, поэтому я предположил, что она не связана с конфигурацией системы. – crazy2be 7 May 2011 в 07:57

Просто добавьте символическую ссылку в файл libc.so.6 следующим образом:

sudo ln -s /lib/i386-linux-gnu/libc.so.6 /lib/libc.so.6

То же самое касается других отсутствующих файлов, которые все еще находятся в системе, в моем случае Matlab отсутствовал в файле, проблема теперь нет.

5
ответ дан 4 August 2018 в 19:33

Просто добавьте символическую ссылку в файл libc.so.6 следующим образом:

  sudo ln -s /lib/i386-linux-gnu/libc.so.6 / lib / libc.  so.6  

То же самое касается других отсутствующих файлов, которые все еще находятся в системе, в моем случае Matlab отсутствовал в файле, проблема исчезла.

5
ответ дан 6 August 2018 в 03:41

Динамические библиотеки загружаются ядром, пути не жестко закодированы в программе. Программа просто говорит: «Мне нужно libc.so.6». Затем система ищет в пулах библиотек, как определено в /etc/ld.so.conf , включая / usr / lib и / lib по умолчанию , Этот файл содержит дополнительные файлы конфигурации в /etc/ld.so.conf.d .

В моей 64-битной системе libc.so.6 можно найти в /lib/x86_64-linux-gnu/libc.so.6 из-за пути, определенного в /etc/ld.so.conf.d/x86_64-linux-gnu .conf :

  # Поддержка Multiarch / lib / x86_64-linux-gnu / usr / lib / x86_64-linux-gnu  

To узнать, какая библиотека загружена программой, используйте ldd , как в ldd / bin / bash :

  linux-vdso.so.  1 = & gt;  (0x00007ffff1dff000) libncurses.so.5 = & gt;  /lib/libncurses.so.5 (0x00007f9d8b3b8000) libdl.so.2 = & gt;  /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f9d8b1b4000) libc.so.6 = & gt;  /lib/x86_64-linux-gnu/libc.so.6 (0x00007f9d8ae1f000) /lib64/ld-linux-x86-64.so.2 (0x00007f9d8b61c000)  

Помещение символической ссылки не будет

Чтобы получить список поиска каталогов, выполните:

  ldconfig -v -N |  grep '^ /'  

-v приводит к отображению списка файлов + каталогов, -N предотвращает кеш ( /etc/ld.so.cache ) от воссоздания.

9
ответ дан 6 August 2018 в 03:41

Просто добавьте символическую ссылку в файл libc.so.6 следующим образом:

  sudo ln -s /lib/i386-linux-gnu/libc.so.6 / lib / libc.  so.6  

То же самое касается других отсутствующих файлов, которые все еще находятся в системе, в моем случае Matlab отсутствовал в файле, проблема исчезла.

5
ответ дан 7 August 2018 в 21:33

Динамические библиотеки загружаются ядром, пути не жестко закодированы в программе. Программа просто говорит: «Мне нужно libc.so.6». Затем система ищет в пулах библиотек, как определено в /etc/ld.so.conf , включая / usr / lib и / lib по умолчанию , Этот файл содержит дополнительные файлы конфигурации в /etc/ld.so.conf.d .

В моей 64-битной системе libc.so.6 можно найти в /lib/x86_64-linux-gnu/libc.so.6 из-за пути, определенного в /etc/ld.so.conf.d/x86_64-linux-gnu .conf :

  # Поддержка Multiarch / lib / x86_64-linux-gnu / usr / lib / x86_64-linux-gnu  

To узнать, какая библиотека загружена программой, используйте ldd , как в ldd / bin / bash :

  linux-vdso.so.  1 = & gt;  (0x00007ffff1dff000) libncurses.so.5 = & gt;  /lib/libncurses.so.5 (0x00007f9d8b3b8000) libdl.so.2 = & gt;  /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f9d8b1b4000) libc.so.6 = & gt;  /lib/x86_64-linux-gnu/libc.so.6 (0x00007f9d8ae1f000) /lib64/ld-linux-x86-64.so.2 (0x00007f9d8b61c000)  

Помещение символической ссылки не будет

Чтобы получить список поиска каталогов, выполните:

  ldconfig -v -N |  grep '^ /'  

-v приводит к отображению списка файлов + каталогов, -N предотвращает кеш ( /etc/ld.so.cache ) от воссоздания.

9
ответ дан 7 August 2018 в 21:33

Просто добавьте символическую ссылку в файл libc.so.6 следующим образом:

  sudo ln -s /lib/i386-linux-gnu/libc.so.6 / lib / libc.  so.6  

То же самое касается других отсутствующих файлов, которые все еще находятся в системе, в моем случае Matlab отсутствовал в файле, проблема исчезла.

5
ответ дан 10 August 2018 в 09:49

Динамические библиотеки загружаются ядром, пути не жестко закодированы в программе. Программа просто говорит: «Мне нужно libc.so.6». Затем система ищет в пулах библиотек, как определено в /etc/ld.so.conf , включая / usr / lib и / lib по умолчанию , Этот файл содержит дополнительные файлы конфигурации в /etc/ld.so.conf.d .

В моей 64-битной системе libc.so.6 можно найти в /lib/x86_64-linux-gnu/libc.so.6 из-за пути, определенного в /etc/ld.so.conf.d/x86_64-linux-gnu .conf :

  # Поддержка Multiarch / lib / x86_64-linux-gnu / usr / lib / x86_64-linux-gnu  

To узнать, какая библиотека загружена программой, используйте ldd , как в ldd / bin / bash :

  linux-vdso.so.  1 = & gt;  (0x00007ffff1dff000) libncurses.so.5 = & gt;  /lib/libncurses.so.5 (0x00007f9d8b3b8000) libdl.so.2 = & gt;  /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f9d8b1b4000) libc.so.6 = & gt;  /lib/x86_64-linux-gnu/libc.so.6 (0x00007f9d8ae1f000) /lib64/ld-linux-x86-64.so.2 (0x00007f9d8b61c000)  

Помещение символической ссылки не будет

Чтобы получить список поиска каталогов, выполните:

  ldconfig -v -N |  grep '^ /'  

-v приводит к отображению списка файлов + каталогов, -N предотвращает кеш ( /etc/ld.so.cache ) от воссоздания.

9
ответ дан 10 August 2018 в 09:49

Динамические библиотеки загружаются ядром, пути не жестко закодированы в программе. Программа просто говорит: «Мне нужно libc.so.6». Затем система ищет в пулах библиотек, как определено в /etc/ld.so.conf , включая / usr / lib и / lib по умолчанию , Этот файл содержит дополнительные файлы конфигурации в /etc/ld.so.conf.d .

В моей 64-битной системе libc.so.6 можно найти в /lib/x86_64-linux-gnu/libc.so.6 из-за пути, определенного в /etc/ld.so.conf.d/x86_64-linux-gnu .conf :

  # Поддержка Multiarch / lib / x86_64-linux-gnu / usr / lib / x86_64-linux-gnu  

To узнать, какая библиотека загружена программой, используйте ldd , как в ldd / bin / bash :

  linux-vdso.so.  1 = & gt;  (0x00007ffff1dff000) libncurses.so.5 = & gt;  /lib/libncurses.so.5 (0x00007f9d8b3b8000) libdl.so.2 = & gt;  /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f9d8b1b4000) libc.so.6 = & gt;  /lib/x86_64-linux-gnu/libc.so.6 (0x00007f9d8ae1f000) /lib64/ld-linux-x86-64.so.2 (0x00007f9d8b61c000)  

Помещение символической ссылки не будет

Чтобы получить список поиска каталогов, выполните:

  ldconfig -v -N |  grep '^ /'  

-v приводит к отображению списка файлов + каталогов, -N предотвращает кеш ( /etc/ld.so.cache ) от воссоздания.

9
ответ дан 13 August 2018 в 16:04
  • 1
    Помещение символической ссылки ничего не сломало бы, но на самом деле это тоже не принесло бы ничего хорошего, верно? – Erik B 5 May 2011 в 22:33
  • 2
    @Erik B: на какую программу / скрипт вы ссылаетесь? Я понимаю, что скрипт запутался, потому что путь жестко запрограммирован. Но программе не нужно знать путь. – Lekensteyn 5 May 2011 в 22:38
  • 3
    – crazy2be 6 May 2011 в 04:33
  • 4
    @ crazy2be: можете ли вы опубликовать вывод ldconfig -v -N | grep '^ /' ? – Lekensteyn 6 May 2011 в 12:42
  • 5
    @Lekensteyn: Конечно: pastebin.com/dtfnw2Tv . Однако это случилось с некоторыми программами практически для любой системы, которую я использовал, поэтому я предположил, что она не связана с конфигурацией системы. – crazy2be 7 May 2011 в 07:57

Просто добавьте символическую ссылку в файл libc.so.6 следующим образом:

  sudo ln -s /lib/i386-linux-gnu/libc.so.6 / lib / libc.  so.6  

То же самое касается других отсутствующих файлов, которые все еще находятся в системе, в моем случае Matlab отсутствовал в файле, проблема исчезла.

5
ответ дан 13 August 2018 в 16:04