ver_linux 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193
  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. loadkeys -V 2>&1 |
  129. awk '/[0-9]+([.]?[0-9]+)+/ && !/not found$/{
  130. match($0, /[0-9]+([.]?[0-9]+)+/)
  131. $0 = substr($0,RSTART,RLENGTH)
  132. printf("Kbd\t\t\t%s\nConsole-tools\t\t%s\n",$0,$0)
  133. }'
  134. oprofiled --version 2>&1 | awk \
  135. '(NR==1 && ($2 == "oprofile")) {print "oprofile ", $3}'
  136. expr --v 2>&1 |
  137. awk '/^expr/{
  138. match($0, /[0-9]+([.]?[0-9]+)+/)
  139. printf("Sh-utils\t\t%s\n",
  140. substr($0,RSTART,RLENGTH))
  141. }'
  142. udevadm --version 2>&1 |
  143. awk '/[0-9]+([.]?[0-9]+)+/ && !/not found$/{
  144. match($0, /[0-9]+([.]?[0-9]+)+/)
  145. printf("Udev\t\t\t%s\n",
  146. substr($0,RSTART,RLENGTH))
  147. }'
  148. iwconfig --version 2>&1 |
  149. awk '/version/{
  150. match($0, /[0-9]+([.]?[0-9]+)+/)
  151. printf("Wireless-tools\t\t%s\n",
  152. substr($0,RSTART,RLENGTH))
  153. }'
  154. test -e /proc/modules &&
  155. sort /proc/modules |
  156. sed '
  157. s/ .*//
  158. H
  159. ${
  160. g
  161. s/^\n/Modules Loaded\t\t/
  162. y/\n/ /
  163. q
  164. }
  165. d
  166. '