Как выполняется обновление исполняемых файлов приложений во время обновления?

Я только что обновил свой Ubuntu lucid до natty, во время обновления он заменил большинство запущенных приложений более новой версией.

Как это работает? (Не будут ли приложения повреждены?) Что произойдет с приложением, если файл lib будет обновлен, и запущенное приложение, которое ищет более старый lib, пытается его загрузить?
21
задан 22 May 2011 в 03:30

30 ответов

Linux (и другие UNIX) проводит различие между именем файла (ссылки), самим файлом (часто идентифицированным с inode) и открытыми дескрипторами файла. Когда вы идете удалить файл, вы вызываете вызов unlink() - это удаляет ссылку на файл (вы также можете использовать rename(), чтобы перезаписать его с помощью другого inode). Однако, если открытые дескрипторы файла (или другие ссылки - файлы могут иметь несколько жестких ссылок) остаются, inode остается, а также содержимое файла, пока все ссылки и дескрипторы не исчезнут.

Так запущенные программы используя библиотеку или что-то, что хранит дескриптор старой версии (часто неявно через сопоставление памяти), поэтому она остается на диске. Он больше не имеет имени файла и будет очищен, когда все его программы будут отключены (или при следующей перезагрузке, во время проверки файловой системы или повтора журнала).

Кроме того, обратите внимание, что программы ожидая, что «старая библиотека» отлично справится с новыми версиями библиотеки. Библиотекам Linux назначается имя файла («soname»), которое отражает версию ABI (Application Binary Interface), предлагаемую библиотекой. Например, библиотека C в моей системе - libc.so.6. Любая программа, составленная против более старой версии libc, но все же версия libc, реализующая версию 6 ABI, отлично справится с этим. Действительно старые программы будут искать libc.so.5 или libc.so.4 или что-то вместо этого; в этом случае вам также нужно будет хранить старую версию, но, поскольку имя файла отличается, это не проблема.

28
ответ дан 25 July 2018 в 21:52

Linux (и другие UNIX) проводит различие между именем файла (ссылки), самим файлом (часто идентифицированным с inode) и открытыми дескрипторами файла. Когда вы идете удалить файл, вы вызываете вызов unlink() - это удаляет ссылку на файл (вы также можете использовать rename(), чтобы перезаписать его с помощью другого inode). Однако, если открытые дескрипторы файла (или другие ссылки - файлы могут иметь несколько жестких ссылок) остаются, inode остается, а также содержимое файла, пока все ссылки и дескрипторы не исчезнут.

Так запущенные программы используя библиотеку или что-то, что хранит дескриптор старой версии (часто неявно через сопоставление памяти), поэтому она остается на диске. Он больше не имеет имени файла и будет очищен, когда все его программы будут отключены (или при следующей перезагрузке, во время проверки файловой системы или повтора журнала).

Кроме того, обратите внимание, что программы ожидая, что «старая библиотека» отлично справится с новыми версиями библиотеки. Библиотекам Linux назначается имя файла («soname»), которое отражает версию ABI (Application Binary Interface), предлагаемую библиотекой. Например, библиотека C в моей системе - libc.so.6. Любая программа, составленная против более старой версии libc, но все же версия libc, реализующая версию 6 ABI, отлично справится с этим. Действительно старые программы будут искать libc.so.5 или libc.so.4 или что-то вместо этого; в этом случае вам также нужно будет хранить старую версию, но, поскольку имя файла отличается, это не проблема.

28
ответ дан 26 July 2018 в 17:27

Linux (и другие UNIX) проводит различие между именем файла (ссылки), самим файлом (часто идентифицированным с inode) и открытыми дескрипторами файла. Когда вы идете удалить файл, вы вызываете вызов unlink() - это удаляет ссылку на файл (вы также можете использовать rename(), чтобы перезаписать его с помощью другого inode). Однако, если открытые дескрипторы файла (или другие ссылки - файлы могут иметь несколько жестких ссылок) остаются, inode остается, а также содержимое файла, пока все ссылки и дескрипторы не исчезнут.

Так запущенные программы используя библиотеку или что-то, что хранит дескриптор старой версии (часто неявно через сопоставление памяти), поэтому она остается на диске. Он больше не имеет имени файла и будет очищен, когда все его программы будут отключены (или при следующей перезагрузке, во время проверки файловой системы или повтора журнала).

Кроме того, обратите внимание, что программы ожидая, что «старая библиотека» отлично справится с новыми версиями библиотеки. Библиотекам Linux назначается имя файла («soname»), которое отражает версию ABI (Application Binary Interface), предлагаемую библиотекой. Например, библиотека C в моей системе - libc.so.6. Любая программа, составленная против более старой версии libc, но все же версия libc, реализующая версию 6 ABI, отлично справится с этим. Действительно старые программы будут искать libc.so.5 или libc.so.4 или что-то вместо этого; в этом случае вам также нужно будет хранить старую версию, но, поскольку имя файла отличается, это не проблема.

28
ответ дан 31 July 2018 в 10:35

Linux (и другие UNIX) проводит различие между именем файла (ссылки), самим файлом (часто идентифицированным с inode) и открытыми дескрипторами файла. Когда вы идете удалить файл, вы вызываете вызов unlink() - это удаляет ссылку на файл (вы также можете использовать rename(), чтобы перезаписать его с помощью другого inode). Однако, если открытые дескрипторы файла (или другие ссылки - файлы могут иметь несколько жестких ссылок) остаются, inode остается, а также содержимое файла, пока все ссылки и дескрипторы не исчезнут.

Так запущенные программы используя библиотеку или что-то, что хранит дескриптор старой версии (часто неявно через сопоставление памяти), поэтому она остается на диске. Он больше не имеет имени файла и будет очищен, когда все его программы будут отключены (или при следующей перезагрузке, во время проверки файловой системы или повтора журнала).

Кроме того, обратите внимание, что программы ожидая, что «старая библиотека» отлично справится с новыми версиями библиотеки. Библиотекам Linux назначается имя файла («soname»), которое отражает версию ABI (Application Binary Interface), предлагаемую библиотекой. Например, библиотека C в моей системе - libc.so.6. Любая программа, составленная против более старой версии libc, но все же версия libc, реализующая версию 6 ABI, отлично справится с этим. Действительно старые программы будут искать libc.so.5 или libc.so.4 или что-то вместо этого; в этом случае вам также нужно будет хранить старую версию, но, поскольку имя файла отличается, это не проблема.

28
ответ дан 31 July 2018 в 11:38

Linux (и другие UNIX) проводит различие между именем файла (ссылки), самим файлом (часто идентифицированным с inode) и открытыми дескрипторами файла. Когда вы идете удалить файл, вы вызываете вызов unlink() - это удаляет ссылку на файл (вы также можете использовать rename(), чтобы перезаписать его с помощью другого inode). Однако, если открытые дескрипторы файла (или другие ссылки - файлы могут иметь несколько жестких ссылок) остаются, inode остается, а также содержимое файла, пока все ссылки и дескрипторы не исчезнут.

Так запущенные программы используя библиотеку или что-то, что хранит дескриптор старой версии (часто неявно через сопоставление памяти), поэтому она остается на диске. Он больше не имеет имени файла и будет очищен, когда все его программы будут отключены (или при следующей перезагрузке, во время проверки файловой системы или повтора журнала).

Кроме того, обратите внимание, что программы ожидая, что «старая библиотека» отлично справится с новыми версиями библиотеки. Библиотекам Linux назначается имя файла («soname»), которое отражает версию ABI (Application Binary Interface), предлагаемую библиотекой. Например, библиотека C в моей системе - libc.so.6. Любая программа, составленная против более старой версии libc, но все же версия libc, реализующая версию 6 ABI, отлично справится с этим. Действительно старые программы будут искать libc.so.5 или libc.so.4 или что-то вместо этого; в этом случае вам также нужно будет хранить старую версию, но, поскольку имя файла отличается, это не проблема.

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

Linux (и другие UNIX) проводит различие между именем файла (ссылки), самим файлом (часто идентифицированным с inode) и открытыми дескрипторами файла. Когда вы идете удалить файл, вы вызываете вызов unlink() - это удаляет ссылку на файл (вы также можете использовать rename(), чтобы перезаписать его с помощью другого inode). Однако, если открытые дескрипторы файла (или другие ссылки - файлы могут иметь несколько жестких ссылок) остаются, inode остается, а также содержимое файла, пока все ссылки и дескрипторы не исчезнут.

Так запущенные программы используя библиотеку или что-то, что хранит дескриптор старой версии (часто неявно через сопоставление памяти), поэтому она остается на диске. Он больше не имеет имени файла и будет очищен, когда все его программы будут отключены (или при следующей перезагрузке, во время проверки файловой системы или повтора журнала).

Кроме того, обратите внимание, что программы ожидая, что «старая библиотека» отлично справится с новыми версиями библиотеки. Библиотекам Linux назначается имя файла («soname»), которое отражает версию ABI (Application Binary Interface), предлагаемую библиотекой. Например, библиотека C в моей системе - libc.so.6. Любая программа, составленная против более старой версии libc, но все же версия libc, реализующая версию 6 ABI, отлично справится с этим. Действительно старые программы будут искать libc.so.5 или libc.so.4 или что-то вместо этого; в этом случае вам также нужно будет хранить старую версию, но, поскольку имя файла отличается, это не проблема.

28
ответ дан 4 August 2018 в 19:25

Linux (и другие UNIX) проводит различие между именем файла (ссылки), самим файлом (часто идентифицированным с inode) и открытыми дескрипторами файла. Когда вы идете удалить файл, вы вызываете вызов unlink() - это удаляет ссылку на файл (вы также можете использовать rename(), чтобы перезаписать его с помощью другого inode). Однако, если открытые дескрипторы файла (или другие ссылки - файлы могут иметь несколько жестких ссылок) остаются, inode остается, а также содержимое файла, пока все ссылки и дескрипторы не исчезнут.

Так запущенные программы используя библиотеку или что-то, что хранит дескриптор старой версии (часто неявно через сопоставление памяти), поэтому она остается на диске. Он больше не имеет имени файла и будет очищен, когда все его программы будут отключены (или при следующей перезагрузке, во время проверки файловой системы или повтора журнала).

Кроме того, обратите внимание, что программы ожидая, что «старая библиотека» отлично справится с новыми версиями библиотеки. Библиотекам Linux назначается имя файла («soname»), которое отражает версию ABI (Application Binary Interface), предлагаемую библиотекой. Например, библиотека C в моей системе - libc.so.6. Любая программа, составленная против более старой версии libc, но все же версия libc, реализующая версию 6 ABI, отлично справится с этим. Действительно старые программы будут искать libc.so.5 или libc.so.4 или что-то вместо этого; в этом случае вам также нужно будет хранить старую версию, но, поскольку имя файла отличается, это не проблема.

28
ответ дан 6 August 2018 в 03:36

Linux (и другие UNIX) проводит различие между именем файла (ссылка ), сам файл (часто отождествляется с inode [ ! d7]) и открывать дескрипторы файла. Когда вы идете удалить файл, вы вызываете вызов unlink () - это удаляет ссылку в файл (вы также можете использовать rename () , чтобы перезаписать его с помощью другого inode). Однако, если открытые дескрипторы файла (или другие ссылки - файлы могут содержать несколько hardlinks ), остается inode , а также содержимое файла, пока все ссылки и

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

Кроме того, обратите внимание, что программы ожидая, что «старая библиотека» отлично справится с новыми версиями библиотеки. Библиотекам Linux назначается имя файла («soname»), которое отражает версию ABI (Application Binary Interface), предлагаемую библиотекой. Например, библиотека C в моей системе libc.so.6 . Любая программа, составленная против более старой версии libc, но все же версия libc, реализующая версию 6 ABI, отлично справится с этим. На самом деле старые программы будут искать libc.so.5 или libc.so.4 или что-то вместо этого; в этом случае вам также нужно будет хранить старую версию, но поскольку имя файла отличается от другого, это не проблема.

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

Linux (и другие UNIX) проводит различие между именем файла (ссылка ), сам файл (часто отождествляется с inode [ ! d7]) и открывать дескрипторы файла. Когда вы идете удалить файл, вы вызываете вызов unlink () - это удаляет ссылку в файл (вы также можете использовать rename () , чтобы перезаписать его с помощью другого inode). Однако, если открытые дескрипторы файла (или другие ссылки - файлы могут содержать несколько hardlinks ), остается inode , а также содержимое файла, пока все ссылки и

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

Кроме того, обратите внимание, что программы ожидая, что «старая библиотека» отлично справится с новыми версиями библиотеки. Библиотекам Linux назначается имя файла («soname»), которое отражает версию ABI (Application Binary Interface), предлагаемую библиотекой. Например, библиотека C в моей системе libc.so.6 . Любая программа, составленная против более старой версии libc, но все же версия libc, реализующая версию 6 ABI, отлично справится с этим. На самом деле старые программы будут искать libc.so.5 или libc.so.4 или что-то вместо этого; в этом случае вам также нужно будет хранить старую версию, но поскольку имя файла отличается от другого, это не проблема.

28
ответ дан 10 August 2018 в 09:43

Linux (и другие UNIX) проводит различие между именем файла (ссылка ), сам файл (часто отождествляется с inode [ ! d7]) и открывать дескрипторы файла. Когда вы идете удалить файл, вы вызываете вызов unlink () - это удаляет ссылку в файл (вы также можете использовать rename () , чтобы перезаписать его с помощью другого inode). Однако, если открытые дескрипторы файла (или другие ссылки - файлы могут содержать несколько hardlinks ), остается inode , а также содержимое файла, пока все ссылки и

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

Кроме того, обратите внимание, что программы ожидая, что «старая библиотека» отлично справится с новыми версиями библиотеки. Библиотекам Linux назначается имя файла («soname»), которое отражает версию ABI (Application Binary Interface), предлагаемую библиотекой. Например, библиотека C в моей системе libc.so.6 . Любая программа, составленная против более старой версии libc, но все же версия libc, реализующая версию 6 ABI, отлично справится с этим. На самом деле старые программы будут искать libc.so.5 или libc.so.4 или что-то вместо этого; в этом случае вам также нужно будет хранить старую версию, но поскольку имя файла отличается от другого, это не проблема.

28
ответ дан 13 August 2018 в 15:56

В отличие от Windows, вы можете удалить или заменить открытый файл; чтобы дать упрощенное объяснение, новые запросы для файлов открывают новый файл, существующие дескрипторы используют файл, который существовал, когда они были созданы. Другими словами, в Linux у вас могут быть файлы / версии файлов, которые все еще существуют, хотя в структуре каталогов больше нет указателя;

Обычно запущенное приложение загружает нужные библиотеки вперед, поэтому описанная вами проблема будет происходить только в очень специфических временных ситуациях, в то время как установленный пакет: запущенные приложения по-прежнему используют старую версию библиотеки, новые приложения используют новую.

Это используется не только в обновлениях дистрибутива, но и при каждом обновлении пакета ( dist-upgrade просто добавляет еще пару автоматических шагов к этому процессу).

8
ответ дан 25 July 2018 в 21:52

Многие процессы Linux продолжают работать после обновления пакетов, но некоторые нет. По моему опыту, KDE никогда не работает должным образом, если вы обновляете его во время его работы. Вероятно, вы столкнетесь с сбоями и / или сбоями выхода из системы.

0
ответ дан 25 July 2018 в 21:52

В отличие от Windows, вы можете удалить или заменить открытый файл; чтобы дать упрощенное объяснение, новые запросы для файлов открывают новый файл, существующие дескрипторы используют файл, который существовал, когда они были созданы. Другими словами, в Linux у вас могут быть файлы / версии файлов, которые все еще существуют, хотя в структуре каталогов больше нет указателя;

Обычно запущенное приложение загружает нужные библиотеки вперед, поэтому описанная вами проблема будет происходить только в очень специфических временных ситуациях, в то время как установленный пакет: запущенные приложения по-прежнему используют старую версию библиотеки, новые приложения используют новую.

Это используется не только в обновлениях дистрибутива, но и при каждом обновлении пакета ( dist-upgrade просто добавляет еще пару автоматических шагов к этому процессу).

8
ответ дан 26 July 2018 в 17:27

Многие процессы Linux продолжают работать после обновления пакетов, но некоторые нет. По моему опыту, KDE никогда не работает должным образом, если вы обновляете его во время его работы. Вероятно, вы столкнетесь с сбоями и / или сбоями выхода из системы.

0
ответ дан 26 July 2018 в 17:27

В отличие от Windows, вы можете удалить или заменить открытый файл; чтобы дать упрощенное объяснение, новые запросы для файлов открывают новый файл, существующие дескрипторы используют файл, который существовал, когда они были созданы. Другими словами, в Linux у вас могут быть файлы / версии файлов, которые все еще существуют, хотя в структуре каталогов больше нет указателя;

Обычно запущенное приложение загружает нужные библиотеки вперед, поэтому описанная вами проблема будет происходить только в очень специфических временных ситуациях, в то время как установленный пакет: запущенные приложения по-прежнему используют старую версию библиотеки, новые приложения используют новую.

Это используется не только в обновлениях дистрибутива, но и при каждом обновлении пакета ( dist-upgrade просто добавляет еще пару автоматических шагов к этому процессу).

8
ответ дан 31 July 2018 в 10:35

Многие процессы Linux продолжают работать после обновления пакетов, но некоторые нет. По моему опыту, KDE никогда не работает должным образом, если вы обновляете его во время его работы. Вероятно, вы столкнетесь с сбоями и / или сбоями выхода из системы.

0
ответ дан 31 July 2018 в 10:35

В отличие от Windows, вы можете удалить или заменить открытый файл; чтобы дать упрощенное объяснение, новые запросы для файлов открывают новый файл, существующие дескрипторы используют файл, который существовал, когда они были созданы. Другими словами, в Linux у вас могут быть файлы / версии файлов, которые все еще существуют, хотя в структуре каталогов больше нет указателя;

Обычно запущенное приложение загружает нужные библиотеки вперед, поэтому описанная вами проблема будет происходить только в очень специфических временных ситуациях, в то время как установленный пакет: запущенные приложения по-прежнему используют старую версию библиотеки, новые приложения используют новую.

Это используется не только в обновлениях дистрибутива, но и при каждом обновлении пакета ( dist-upgrade просто добавляет еще пару автоматических шагов к этому процессу).

8
ответ дан 31 July 2018 в 11:38

Многие процессы Linux продолжают работать после обновления пакетов, но некоторые нет. По моему опыту, KDE никогда не работает должным образом, если вы обновляете его во время его работы. Вероятно, вы столкнетесь с сбоями и / или сбоями выхода из системы.

0
ответ дан 31 July 2018 в 11:38

В отличие от Windows, вы можете удалить или заменить открытый файл; чтобы дать упрощенное объяснение, новые запросы для файлов открывают новый файл, существующие дескрипторы используют файл, который существовал, когда они были созданы. Другими словами, в Linux у вас могут быть файлы / версии файлов, которые все еще существуют, хотя в структуре каталогов больше нет указателя;

Обычно запущенное приложение загружает нужные библиотеки вперед, поэтому описанная вами проблема будет происходить только в очень специфических временных ситуациях, в то время как установленный пакет: запущенные приложения по-прежнему используют старую версию библиотеки, новые приложения используют новую.

Это используется не только в обновлениях дистрибутива, но и при каждом обновлении пакета ( dist-upgrade просто добавляет еще пару автоматических шагов к этому процессу).

8
ответ дан 2 August 2018 в 03:28

Многие процессы Linux продолжают работать после обновления пакетов, но некоторые нет. По моему опыту, KDE никогда не работает должным образом, если вы обновляете его во время его работы. Вероятно, вы столкнетесь с сбоями и / или сбоями выхода из системы.

0
ответ дан 2 August 2018 в 03:28

В отличие от Windows, вы можете удалить или заменить открытый файл; чтобы дать упрощенное объяснение, новые запросы для файлов открывают новый файл, существующие дескрипторы используют файл, который существовал, когда они были созданы. Другими словами, в Linux у вас могут быть файлы / версии файлов, которые все еще существуют, хотя в структуре каталогов больше нет указателя;

Обычно запущенное приложение загружает нужные библиотеки вперед, поэтому описанная вами проблема будет происходить только в очень специфических временных ситуациях, в то время как установленный пакет: запущенные приложения по-прежнему используют старую версию библиотеки, новые приложения используют новую.

Это используется не только в обновлениях дистрибутива, но и при каждом обновлении пакета ( dist-upgrade просто добавляет еще пару автоматических шагов к этому процессу).

8
ответ дан 4 August 2018 в 19:25

Многие процессы Linux продолжают работать после обновления пакетов, но некоторые нет. По моему опыту, KDE никогда не работает должным образом, если вы обновляете его во время его работы. Вероятно, вы столкнетесь с сбоями и / или сбоями выхода из системы.

0
ответ дан 4 August 2018 в 19:25

В отличие от Windows, вы можете удалить или заменить открытый файл; чтобы дать упрощенное объяснение, новые запросы для файлов открывают новый файл, существующие дескрипторы используют файл, который существовал, когда они были созданы. Другими словами, в Linux у вас могут быть файлы / версии файлов, которые все еще существуют, хотя в структуре каталогов больше нет указателя;

Обычно запущенное приложение загружает нужные библиотеки вперед, поэтому описанная вами проблема будет происходить только в очень специфических временных ситуациях, в то время как установленный пакет: запущенные приложения по-прежнему используют старую версию библиотеки, новые приложения используют новую.

Это используется не только в обновлениях дистрибутива, но и при каждом обновлении пакета ( dist-upgrade просто добавляет еще пару автоматических шагов к этому процессу).

8
ответ дан 6 August 2018 в 03:36

Многие процессы Linux продолжают работать после обновления пакетов, но некоторые нет. По моему опыту, KDE никогда не работает должным образом, если вы обновляете его во время его работы. Вероятно, вы столкнетесь с сбоями и / или сбоями выхода из системы.

0
ответ дан 6 August 2018 в 03:36

Многие процессы Linux продолжают работать после обновления пакетов, но некоторые нет. По моему опыту, KDE никогда не работает должным образом, если вы обновляете его во время его работы. Вероятно, вы столкнетесь с сбоями и / или сбоями выхода из системы.

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

В отличие от Windows, вы можете удалить или заменить открытый файл; чтобы дать упрощенное объяснение, новые запросы для файлов открывают новый файл, существующие дескрипторы используют файл, который существовал, когда они были созданы. Другими словами, в Linux у вас могут быть файлы / версии файлов, которые все еще существуют, хотя в структуре каталогов больше нет указателя;

Обычно запущенное приложение загружает нужные библиотеки вперед, поэтому описанная вами проблема будет происходить только в очень конкретных временных ситуациях, в то время как установленный пакет: запущенные приложения по-прежнему используют старую версию библиотеки, новые приложения используют новую.

Это используется не только в обновлениях дистрибутива, но и при каждом обновлении пакета ( dist-upgrade просто добавляет еще пару автоматических шагов к этому процессу).

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

Многие процессы Linux продолжают работать после обновления пакетов, но некоторые нет. По моему опыту, KDE никогда не работает должным образом, если вы обновляете его во время его работы. Вероятно, вы столкнетесь с сбоями и / или сбоями выхода из системы.

0
ответ дан 10 August 2018 в 09:43

В отличие от Windows, вы можете удалить или заменить открытый файл; чтобы дать упрощенное объяснение, новые запросы для файлов открывают новый файл, существующие дескрипторы используют файл, который существовал, когда они были созданы. Другими словами, в Linux у вас могут быть файлы / версии файлов, которые все еще существуют, хотя в структуре каталогов больше нет указателя;

Обычно запущенное приложение загружает нужные библиотеки вперед, поэтому описанная вами проблема будет происходить только в очень конкретных временных ситуациях, в то время как установленный пакет: запущенные приложения по-прежнему используют старую версию библиотеки, новые приложения используют новую.

Это используется не только в обновлениях дистрибутива, но и при каждом обновлении пакета ( dist-upgrade просто добавляет еще пару автоматических шагов к этому процессу).

8
ответ дан 10 August 2018 в 09:43

Многие процессы Linux продолжают работать после обновления пакетов, но некоторые нет. По моему опыту, KDE никогда не работает должным образом, если вы обновляете его во время его работы. Вероятно, вы столкнетесь с сбоями и / или сбоями выхода из системы.

0
ответ дан 13 August 2018 в 15:56

В отличие от Windows, вы можете удалить или заменить открытый файл; чтобы дать упрощенное объяснение, новые запросы для файлов открывают новый файл, существующие дескрипторы используют файл, который существовал, когда они были созданы. Другими словами, в Linux у вас могут быть файлы / версии файлов, которые все еще существуют, хотя в структуре каталогов больше нет указателя;

Обычно запущенное приложение загружает нужные библиотеки вперед, поэтому описанная вами проблема будет происходить только в очень конкретных временных ситуациях, в то время как установленный пакет: запущенные приложения по-прежнему используют старую версию библиотеки, новые приложения используют новую.

Это используется не только в обновлениях дистрибутива, но и при каждом обновлении пакета ( dist-upgrade просто добавляет еще пару автоматических шагов к этому процессу).

8
ответ дан 13 August 2018 в 15:56

Другие вопросы по тегам:

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