Как они могут быть устаревшими?
Если бы там была формулировка «сидит в тюрьме», а он на свободе — сведения устарели.
А когда там «тогда-то столько-то отсидел, сейчас гуляет» — как это может устареть? Это факт, он был. Давайте удалим информацию и войнах, о теории эволюции, о библии, о динозаврах — а чё, устарели ведь…
Клиент и потенциальный хакер висят на одной открытой точке доступа. Хакер лёгким движением руки забирает куки и использует аккаунт жертвы, т.к. у них у обоих один внешний айпишник за натом. Тадаааам.
Ну… его нет. RoR — набор слабосвязанных библиотек, которые вместе образуют фреймворк. Как в наборе библиотек вычленить ядро? И что это за ядро вообще такое, что оно делает, чем занимается?
Нынешний подход линковщика учитывает semver — но ровно до тех пор, пока автор всё не сломает.
Т.е. есть приложение app, которые слинковано с libfoo.so.1, который есть симлинк на libfoo.so.1.2, который есть симлинк на libfoo.so.1.2.3. Выходит апдейт библиотеки libfoo — и у нас теперь есть libfoo.so.1.3, который есть симлинк на libfoo.so.1.3.0. Приложение продолжает работать, т.к. ссылка libfoo.so.1 обновилась и указывает на libfoo.so.1.3 и линковщик вполне себе справляется. Конечно, если автор не выкинул из это библиотеки половину функций, которые использует app.
Но в один прекрасный день выходит libfoo 2, и теперь у нас такая иерархия: libfoo.so -> libfoo.so.2 -> libfoo.so.2.0 -> libfoo.so.2.0.0. Но приложение то слинковано с libfoo.so.1! Нужная либа не находится и приложение не запускается.
Предвидя вопрос «А почему нельзя просто линковаться с libfoo.so, который будет хоть указателем на libfoo.so.100500» — смена первой цифры нумерации версии обычно подразумевает тотальную смену api, т.е. приложение в любом случае не запустится.
Ну мы ведь разговаривали про несовместимые версии библиотек, т.е. каждому приложению в любом случае свои «пол гнома», а откуда их брать — из репозитория или из snap пакета тут роли не играет, качать примерно одинаково.
Такой софт всё ещё собирается в пакеты, никаких отличий от системных там нет. Да и редко такие встречаются, если честно. На кой фиг мне нужен древний софт?
памятиместу.Если бы там была формулировка «сидит в тюрьме», а он на свободе — сведения устарели.
А когда там «тогда-то столько-то отсидел, сейчас гуляет» — как это может устареть? Это факт, он был. Давайте удалим информацию и войнах, о теории эволюции, о библии, о динозаврах — а чё, устарели ведь…
Если бы так было во вконтактике, продвижение ipv6 пошло бы куда быстрее
</sarcasm>
Т.е. есть приложение app, которые слинковано с libfoo.so.1, который есть симлинк на libfoo.so.1.2, который есть симлинк на libfoo.so.1.2.3. Выходит апдейт библиотеки libfoo — и у нас теперь есть libfoo.so.1.3, который есть симлинк на libfoo.so.1.3.0. Приложение продолжает работать, т.к. ссылка libfoo.so.1 обновилась и указывает на libfoo.so.1.3 и линковщик вполне себе справляется. Конечно, если автор не выкинул из это библиотеки половину функций, которые использует app.
Но в один прекрасный день выходит libfoo 2, и теперь у нас такая иерархия: libfoo.so -> libfoo.so.2 -> libfoo.so.2.0 -> libfoo.so.2.0.0. Но приложение то слинковано с libfoo.so.1! Нужная либа не находится и приложение не запускается.
Предвидя вопрос «А почему нельзя просто линковаться с libfoo.so, который будет хоть указателем на libfoo.so.100500» — смена первой цифры нумерации версии обычно подразумевает тотальную смену api, т.е. приложение в любом случае не запустится.