diff --git a/var/spack/repos/builtin/packages/tar/package.py b/var/spack/repos/builtin/packages/tar/package.py
index 15c2e4bc0ef1404fd0782f8a8ac58252255ff139..8dd0c190a4658ea3571e5f2788b76539924f3fde 100644
--- a/var/spack/repos/builtin/packages/tar/package.py
+++ b/var/spack/repos/builtin/packages/tar/package.py
@@ -13,6 +13,8 @@ class Tar(AutotoolsPackage, GNUMirrorPackage):
     homepage = "https://www.gnu.org/software/tar/"
     gnu_mirror_path = "tar/tar-1.32.tar.gz"
 
+    executables = [r'^tar$']
+
     version('1.32', sha256='b59549594d91d84ee00c99cf2541a3330fed3a42c440503326dab767f2fbb96c')
     version('1.31', sha256='b471be6cb68fd13c4878297d856aebd50551646f4e3074906b1a74549c40d5a2')
     version('1.30', sha256='4725cc2c2f5a274b12b39d1f78b3545ec9ebb06a6e48e8845e1995ac8513b088')
@@ -27,6 +29,12 @@ class Tar(AutotoolsPackage, GNUMirrorPackage):
     patch('argp-pgi.patch',   when='@:1.29')
     patch('gnutar-configure-xattrs.patch', when='@1.28')
 
+    @classmethod
+    def determine_version(cls, exe):
+        output = Executable(exe)('--version', output=str, error=str)
+        match = re.search(r'tar \(GNU tar\) (\S+)', output)
+        return match.group(1) if match else None
+
     def configure_args(self):
         return [
             '--with-libiconv-prefix={0}'.format(self.spec['iconv'].prefix),