ver_linux 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171
  1. #!/bin/sh
  2. # Before running this script please ensure that your PATH is
  3. # typical as you use for compilation/istallation. I use
  4. # /bin /sbin /usr/bin /usr/sbin /usr/local/bin, but it may
  5. # differ on your system.
  6. #
  7. echo 'If some fields are empty or look unusual you may have an old version.'
  8. echo 'Compare to the current minimal requirements in Documentation/Changes.'
  9. echo ' '
  10. uname -a
  11. echo ' '
  12. gcc -dumpversion 2>&1 |
  13. awk '/[0-9]+([.]?[0-9]+)+/ && !/not found$/{
  14. match($0, /[0-9]+([.]?[0-9]+)+/)
  15. printf("GNU C\t\t\t%s\n",
  16. substr($0,RSTART,RLENGTH))
  17. }'
  18. make --version 2>&1 |
  19. awk '/GNU Make/{
  20. match($0, /[0-9]+([.]?[0-9]+)+/)
  21. printf("GNU Make\t\t%s\n",
  22. substr($0,RSTART,RLENGTH))
  23. }'
  24. ld -v 2>&1 |
  25. awk '/[0-9]+([.]?[0-9]+)+/ && !/not found$/{
  26. match($0, /[0-9]+([.]?[0-9]+)+/)
  27. printf("Binutils\t\t%s\n",
  28. substr($0,RSTART,RLENGTH))
  29. }'
  30. mount --version 2>&1 |
  31. awk '/[0-9]+([.]?[0-9]+)+/ && !/not found$/{
  32. match($0, /[0-9]+([.]?[0-9]+)+/)
  33. $0 = substr($0,RSTART,RLENGTH)
  34. printf("Util-linux\t\t%s\nMount\t\t\t%s\n",$0,$0)
  35. }'
  36. depmod -V 2>&1 |
  37. awk '/[0-9]+([.]?[0-9]+)+/ && !/not found$/{
  38. match($0, /[0-9]+([.]?[0-9]+)+/)
  39. printf("Module-init-tools\t%s\n",
  40. substr($0,RSTART,RLENGTH))
  41. }'
  42. tune2fs 2>&1 |
  43. awk '/^tune2fs/{
  44. match($0, /[0-9]+([.]?[0-9]+)+/)
  45. printf("E2fsprogs\t\t%s\n",
  46. substr($0,RSTART,RLENGTH))
  47. }'
  48. fsck.jfs -V 2>&1 |
  49. awk '/version/{
  50. match($0, /[0-9]+([.]?[0-9]+)+/)
  51. printf("Jfsutils\t\t%s\n",
  52. substr($0,RSTART,RLENGTH))
  53. }'
  54. reiserfsck -V 2>&1 |
  55. awk '/^reiserfsck/{
  56. match($0, /[0-9]+([.]?[0-9]+)+/)
  57. printf("Reiserfsprogs\t\t%s\n",
  58. substr($0,RSTART,RLENGTH))
  59. }'
  60. fsck.reiser4 -V 2>&1 | grep ^fsck.reiser4 | awk \
  61. 'NR==1{print "reiser4progs ", $2}'
  62. xfs_db -V 2>&1 |
  63. awk '/version/{
  64. match($0, /[0-9]+([.]?[0-9]+)+/)
  65. printf("Xfsprogs\t\t%s\n",
  66. substr($0,RSTART,RLENGTH))
  67. }'
  68. pccardctl -V 2>&1 |
  69. awk '/pcmciautils/{
  70. match($0, /[0-9]+([.]?[0-9]+)+/)
  71. printf("Pcmciautils\t\t%s\n",
  72. substr($0,RSTART,RLENGTH))
  73. }'
  74. cardmgr -V 2>&1| grep version | awk \
  75. 'NR==1{print "pcmcia-cs ", $3}'
  76. quota -V 2>&1 |
  77. awk '/version/{
  78. match($0, /[0-9]+([.]?[0-9]+)+/)
  79. printf("Quota-tools\t\t%s\n",
  80. substr($0,RSTART,RLENGTH))
  81. }'
  82. pppd --version 2>&1 |
  83. awk '/version/{
  84. match($0, /[0-9]+([.]?[0-9]+)+/)
  85. printf("PPP\t\t\t%s\n",
  86. substr($0,RSTART,RLENGTH))
  87. }'
  88. isdnctrl 2>&1 | grep version | awk \
  89. 'NR==1{print "isdn4k-utils ", $NF}'
  90. showmount --version 2>&1 | grep nfs-utils | awk \
  91. 'NR==1{print "nfs-utils ", $NF}'
  92. test -r /proc/self/maps &&
  93. sed '
  94. /.*libc-\(.*\)\.so$/!d
  95. s//Linux C Library\t\t\1/
  96. q
  97. ' /proc/self/maps
  98. ldd --version 2>&1 |
  99. awk '/^ldd/{
  100. match($0, /[0-9]+([.]?[0-9]+)+/)
  101. printf("Dynamic linker (ldd)\t%s\n",
  102. substr($0,RSTART,RLENGTH))
  103. }'
  104. libcpp=`ldconfig -p 2>/dev/null |
  105. awk '/(libg|stdc)[+]+\.so/ {
  106. print $NF
  107. exit
  108. }
  109. '`
  110. test -r "$libcpp" &&
  111. ls -l $libcpp |
  112. sed '
  113. s!.*so\.!!
  114. s!^!Linux C++ Library\t!
  115. '
  116. ps --version 2>&1 |
  117. awk '/version/{
  118. match($0, /[0-9]+([.]?[0-9]+)+/)
  119. printf("Procps\t\t\t%s\n",
  120. substr($0,RSTART,RLENGTH))
  121. }'
  122. ifconfig --version 2>&1 |
  123. awk '/tools/{
  124. match($0, /[0-9]+([.]?[0-9]+)+/)
  125. printf("Net-tools\t\t%s\n",
  126. substr($0,RSTART,RLENGTH))
  127. }'
  128. # Kbd needs 'loadkeys -h',
  129. loadkeys -h 2>&1 | awk \
  130. '(NR==1 && ($3 !~ /option/)) {print "Kbd ", $3}'
  131. # while console-tools needs 'loadkeys -V'.
  132. loadkeys -V 2>&1 | awk \
  133. '(NR==1 && ($2 ~ /console-tools/)) {print "Console-tools ", $3}'
  134. oprofiled --version 2>&1 | awk \
  135. '(NR==1 && ($2 == "oprofile")) {print "oprofile ", $3}'
  136. expr --v 2>&1 | awk 'NR==1{print "Sh-utils ", $NF}'
  137. udevinfo -V 2>&1 | grep version | awk '{print "udev ", $3}'
  138. iwconfig --version 2>&1 | awk \
  139. '(NR==1 && ($3 == "version")) {print "wireless-tools ",$4}'
  140. if [ -e /proc/modules ]; then
  141. X=`cat /proc/modules | sed -e "s/ .*$//"`
  142. echo "Modules Loaded "$X
  143. fi