Общий порядок компиляции + как узнать версию библиотеки
4 сообщения • Страница 1 из 1
bdimych Сообщения: 46
Общий порядок компиляции + как узнать версию библиотеки
Сообщение bdimych » 11.02.2007 23:40
MOPSLinux 5 = Slackware 11
Я начинающий но уже продвинутый. Не могу сообразить принципы стандартной сборки приложения linux.
Вопросы возникли при попытках сборки vlc player. Это здоровенный можно сказать мультимедийный фрэймворк. Чтобы его собрать нужно ~30 других пакетов которые и между собой тоже связаны. Там есть автоматизация сборки всех нужных пакетов, но с первого раза не получилось. Процесс несколько раз стопорился и в каждом случае приходилось вручную разбираться с несобирающимся пакетом.
И когда он наконец таки собрался, заработал тоже не сразу. Пришлось пересобирать несколько раз а на каждую пересборку не меньше 40 минут уходило. Я злился!
Не могу сообразить порядок вообще т.е.
1. autotools делают файлы Makefile и configure
Как посмотреть информацию о версии ОС и как узнать версию ядра ОС
2. gcc и g++ собирает файлы «o» из файлов c/cpp + h/hpp
3. . собирает из нескольких «o» файл «a»
4. . из «a» делает файл «so»
Статическая сборка — это включение кусков кода из одного «o» в другой ?
Где определяется что программа будет не статической а использовать «so» и какие ? Т.е. например пакет ffmpeg у меня уже есть в /usr/local. Сборочный скрипт vlc качает ffmpeg в свой подкаталог и как быть уверенным что при сборке будет использоваться именно скаченная версия
Что делает ldconfig? Т.е. не может ли он тоже повлиять на то какая версия ffmpeg будет использоваться. Ведь ldconfig при каждой загрузке запускается и что то связывает.
Как узнать версию файла «a» или «so» и вообще понятие версия библиотеки в линуксе что означает. Я виндузятник поэтому о версии представление такое — «правой кнопкой — свойства файла». Пробовал readelf но он выдает нечто большое которое явно не совпадает просто с цифрой в имени файла после «so». Эта цифра как я понимаю и есть версия? Но внутри файла версии нет что ли ? А у файлов «a» где тогда версия ?
я примерно знаю что надо читать: elf + libtool + ld + ldconfig + флаги -L -I -l но как говорил Киса Воробьянинов хочется чтобы побыстрее Если не трудно объясните пожалуйста в двух словах.
Источник: unixforum.org
Как узнать версию программы в Linux
sed (GNU sed) 4.7 Packaged by Debian Copyright (C) 2018 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later . This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Written by Jay Fenlason, Tom Lord, Ken Pizzini, Paolo Bonzini, Jim Meyering, and Assaf Gordon. GNU sed home page: . General help using GNU software: . E-mail bug reports to: .
Как узнать версию Ubuntu Linux?
В Debian , Ubuntu и других производных Debian можно выполнить команду
dpkg -p имя_программы
Например, чтобы узнать версию sed нужно выполнить
Package: sed Essential: yes Priority: required Section: utils Installed-Size: 336 Origin: Ubuntu Maintainer: Ubuntu Developers Bugs: https://bugs.launchpad.net/ubuntu/+filebug Architecture: amd64 Multi-Arch: foreign Version: 4.7-1 Pre-Depends: libacl1 (>= 2.2.51-8), libc6 (>= 2.14), libselinux1 (>= 1.32) Filename: pool/main/s/sed/sed_4.7-1_amd64.deb Size: 189668 MD5sum: 2e2c9a0370c20a2a1921572f250db43e Description: GNU stream editor for filtering/transforming text Original-Maintainer: Clint Adams SHA1: a8106de20fa00fc7f97a45d18ec411512cc64293 SHA256: a5428ddec609149eb6086cec20bf14a0300972a191eb0cc010e7f1c7f17186f4 Homepage: https://www.gnu.org/software/sed/ Task: minimal Description-md5: 2ed71305ee7a49ce4438c58140980d2f
Команда dpkg -p, впрочем как и флаги —version, -V работает не со всеми программами
Например, если вы выполните
dpkg -p virtualbox
Скорее всего получите сообщение
dpkg-query: package ‘virtualbox’ is not available
Команда virtualbox —version просто запустит Virtualbox
Чтобы определить версию Virtualbox выполните
Oracle VM VirtualBox VM Selector v6.1.10_Ubuntu (C) 2005-2020 Oracle Corporation All rights reserved. No special options. If you are looking for —startvm and related options, you need to use VirtualBoxVM.
Источник: urn.su
Узнаем версию дистрибутива Linux
В любой операционной системе есть специальные инструменты или методы, которые позволяют узнать ее версию. Исключением не стали и дистрибутивы на базе Linux. В этой статье мы поговорим о том, как узнать версию Linux.
Узнаем версию Linux
Linux — это всего лишь ядро, на базе которого разрабатываются различные дистрибутивы. Порою в их обилии легко запутаться, но, зная как проверить версию самого ядра или графической оболочки, вы сможете в любой момент узнать всю необходимую информацию. А способов для проверки много.
Способ 1: Inxi
Inxi поможет в два счета собрать все сведения о системе, однако предустановлена она лишь в Linux Mint. Но это не беда, абсолютно любой пользователь может за несколько секунд установить ее из официального репозитория.
Установка утилиты и сама работа с ней будет происходить в «Терминале» — аналог «Командной строки» в Windows. Поэтому, прежде чем начинать перечислять все возможные вариации проверки информации о системе с использованием «Терминала», стоит сделать ремарку и рассказать, как открыть этот самый «Терминал». Для этого необходимо нажать сочетание клавиш CTRL + ALT + T или совершить поиск по системе с поисковым запросом «Terminal» (без кавычек).
Установка Inxi
- Пропишите следующую команду в «Терминал» и нажмите Enter, чтобы установить утилиту Inxi: sudo apt install inxi
- После этого у вас попросят ввести пароль, который вы указывали при установке ОС.
Примечание: при вводе пароля символы в «Терминале» не отображаются, поэтому введите необходимую комбинацию и нажмите Enter, а система вам ответит, правильно вы ввели пароль или нет.
После нажатия строки в «Терминале» побегут вверх — это значит что начался процесс установки. В итоге вам необходимо дождаться его окончания. Определить это вы можете по появившемуся вашему никнейму и имени ПК.
Проверка версии
После установки вы можете проверить информацию о системе, введя следующую команду:
После этого на экран выведется следующая информация:
Host | Имя компьютера |
Kernel | Ядро системы и ее разрядность |
Desktop | Графическая оболочка системы и ее версия |
Distro | Имя дистрибутива и его версия |
Однако это далеко не вся информация, которую может предоставить утилита Inxi. Чтобы узнать все сведения, впишите команду:
В результате будет отображена абсолютно вся информация.
Способ 2: Терминал
В отличие от способа, про который будет рассказано в завершении, у этого есть одно неоспоримое преимущество — инструкция общая для всех дистрибутивов. Однако, если пользователь только-только пришел с Windows и еще не знает, что такое «Терминал», ему будет сложно адаптироваться. Но обо всем по порядку.
Если вам необходимо определить версию установленного дистрибутива Linux, то для этого существует немало команд. Сейчас будут разобраны самые популярные из них.
- Если интересует только информация о дистрибутиве без лишних подробностей, то лучше воспользоваться командой: cat /etc/issue после введения которой на экране появится информация о версии.
- Если нужны более детальные сведения — введите команду: lsb_release -a Она выведет название, версию и кодовое имя дистрибутива.
- Это была информация, которую встроенные утилиты собирают самостоятельно, но есть возможность посмотреть сведения, которые были оставлены самими разработчиками. Для этого нужно прописать команду: cat /etc/*-release Эта команда покажет абсолютно всю информацию о релизе дистрибутива.
Это не все, а лишь самые распространенные команды для проверки версии Linux, но их хватит с лихвой, чтобы узнать всю нужную информацию о системе.