linux/scripts/ver_linux
Alexander Kapshuk 1245b7ec0f ver_linux: use 'udevadm', instead of 'udevinfo'
'udevinfo' no longer seems to be available across various
distros. 'udevadm' seems to be the currently valid way to look up the
'udev' version.

Tested on:
Gentoo Linux
Debian 6.0.10
Oracle Linux Server release 7.1

Rely on regex to find the version number, rather than rely on numerical input to be found in a particular input field.
Proposed implementation also eliminates the necessity to invoke 'grep' + 'awk'.

Signed-off-by: Alexander Kapshuk <alexander.kapshuk@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2015-10-17 21:55:26 -07:00

181 lines
3.8 KiB
Bash
Executable File

#!/bin/sh
# Before running this script please ensure that your PATH is
# typical as you use for compilation/istallation. I use
# /bin /sbin /usr/bin /usr/sbin /usr/local/bin, but it may
# differ on your system.
#
echo 'If some fields are empty or look unusual you may have an old version.'
echo 'Compare to the current minimal requirements in Documentation/Changes.'
echo ' '
uname -a
echo ' '
gcc -dumpversion 2>&1 |
awk '/[0-9]+([.]?[0-9]+)+/ && !/not found$/{
match($0, /[0-9]+([.]?[0-9]+)+/)
printf("GNU C\t\t\t%s\n",
substr($0,RSTART,RLENGTH))
}'
make --version 2>&1 |
awk '/GNU Make/{
match($0, /[0-9]+([.]?[0-9]+)+/)
printf("GNU Make\t\t%s\n",
substr($0,RSTART,RLENGTH))
}'
ld -v 2>&1 |
awk '/[0-9]+([.]?[0-9]+)+/ && !/not found$/{
match($0, /[0-9]+([.]?[0-9]+)+/)
printf("Binutils\t\t%s\n",
substr($0,RSTART,RLENGTH))
}'
mount --version 2>&1 |
awk '/[0-9]+([.]?[0-9]+)+/ && !/not found$/{
match($0, /[0-9]+([.]?[0-9]+)+/)
$0 = substr($0,RSTART,RLENGTH)
printf("Util-linux\t\t%s\nMount\t\t\t%s\n",$0,$0)
}'
depmod -V 2>&1 |
awk '/[0-9]+([.]?[0-9]+)+/ && !/not found$/{
match($0, /[0-9]+([.]?[0-9]+)+/)
printf("Module-init-tools\t%s\n",
substr($0,RSTART,RLENGTH))
}'
tune2fs 2>&1 |
awk '/^tune2fs/{
match($0, /[0-9]+([.]?[0-9]+)+/)
printf("E2fsprogs\t\t%s\n",
substr($0,RSTART,RLENGTH))
}'
fsck.jfs -V 2>&1 |
awk '/version/{
match($0, /[0-9]+([.]?[0-9]+)+/)
printf("Jfsutils\t\t%s\n",
substr($0,RSTART,RLENGTH))
}'
reiserfsck -V 2>&1 |
awk '/^reiserfsck/{
match($0, /[0-9]+([.]?[0-9]+)+/)
printf("Reiserfsprogs\t\t%s\n",
substr($0,RSTART,RLENGTH))
}'
fsck.reiser4 -V 2>&1 | grep ^fsck.reiser4 | awk \
'NR==1{print "reiser4progs ", $2}'
xfs_db -V 2>&1 |
awk '/version/{
match($0, /[0-9]+([.]?[0-9]+)+/)
printf("Xfsprogs\t\t%s\n",
substr($0,RSTART,RLENGTH))
}'
pccardctl -V 2>&1 |
awk '/pcmciautils/{
match($0, /[0-9]+([.]?[0-9]+)+/)
printf("Pcmciautils\t\t%s\n",
substr($0,RSTART,RLENGTH))
}'
cardmgr -V 2>&1| grep version | awk \
'NR==1{print "pcmcia-cs ", $3}'
quota -V 2>&1 |
awk '/version/{
match($0, /[0-9]+([.]?[0-9]+)+/)
printf("Quota-tools\t\t%s\n",
substr($0,RSTART,RLENGTH))
}'
pppd --version 2>&1 |
awk '/version/{
match($0, /[0-9]+([.]?[0-9]+)+/)
printf("PPP\t\t\t%s\n",
substr($0,RSTART,RLENGTH))
}'
isdnctrl 2>&1 | grep version | awk \
'NR==1{print "isdn4k-utils ", $NF}'
showmount --version 2>&1 | grep nfs-utils | awk \
'NR==1{print "nfs-utils ", $NF}'
test -r /proc/self/maps &&
sed '
/.*libc-\(.*\)\.so$/!d
s//Linux C Library\t\t\1/
q
' /proc/self/maps
ldd --version 2>&1 |
awk '/^ldd/{
match($0, /[0-9]+([.]?[0-9]+)+/)
printf("Dynamic linker (ldd)\t%s\n",
substr($0,RSTART,RLENGTH))
}'
libcpp=`ldconfig -p 2>/dev/null |
awk '/(libg|stdc)[+]+\.so/ {
print $NF
exit
}
'`
test -r "$libcpp" &&
ls -l $libcpp |
sed '
s!.*so\.!!
s!^!Linux C++ Library\t!
'
ps --version 2>&1 |
awk '/version/{
match($0, /[0-9]+([.]?[0-9]+)+/)
printf("Procps\t\t\t%s\n",
substr($0,RSTART,RLENGTH))
}'
ifconfig --version 2>&1 |
awk '/tools/{
match($0, /[0-9]+([.]?[0-9]+)+/)
printf("Net-tools\t\t%s\n",
substr($0,RSTART,RLENGTH))
}'
loadkeys -V 2>&1 |
awk '/[0-9]+([.]?[0-9]+)+/ && !/not found$/{
match($0, /[0-9]+([.]?[0-9]+)+/)
$0 = substr($0,RSTART,RLENGTH)
printf("Kbd\t\t\t%s\nConsole-tools\t\t%s\n",$0,$0)
}'
oprofiled --version 2>&1 | awk \
'(NR==1 && ($2 == "oprofile")) {print "oprofile ", $3}'
expr --v 2>&1 |
awk '/^expr/{
match($0, /[0-9]+([.]?[0-9]+)+/)
printf("Sh-utils\t\t%s\n",
substr($0,RSTART,RLENGTH))
}'
udevadm --version 2>&1 |
awk '/[0-9]+([.]?[0-9]+)+/ && !/not found$/{
match($0, /[0-9]+([.]?[0-9]+)+/)
printf("Udev\t\t\t%s\n",
substr($0,RSTART,RLENGTH))
}'
iwconfig --version 2>&1 | awk \
'(NR==1 && ($3 == "version")) {print "wireless-tools ",$4}'
if [ -e /proc/modules ]; then
X=`cat /proc/modules | sed -e "s/ .*$//"`
echo "Modules Loaded "$X
fi