diff --git a/src/dateutil/zoneinfo/__init__.py b/src/dateutil/zoneinfo/__init__.py
index 34f11ad..e3f0f94 100644
--- a/src/dateutil/zoneinfo/__init__.py
+++ b/src/dateutil/zoneinfo/__init__.py
@@ -1,6 +1,7 @@
 # -*- coding: utf-8 -*-
 import warnings
 import json
+import os
 
 from tarfile import TarFile
 from pkgutil import get_data
@@ -10,7 +11,7 @@ from dateutil.tz import tzfile as _tzfile
 
 __all__ = ["get_zonefile_instance", "gettz", "gettz_db_metadata"]
 
-ZONEFILENAME = "dateutil-zoneinfo.tar.gz"
+ZONEDIRECTORY = "/usr/share/zoneinfo"
 METADATA_FN = 'METADATA'
 
 
@@ -19,12 +20,14 @@ class tzfile(_tzfile):
         return (gettz, (self._filename,))
 
 
-def getzoneinfofile_stream():
-    try:
-        return BytesIO(get_data(__name__, ZONEFILENAME))
-    except IOError as e:  # TODO  switch to FileNotFoundError?
-        warnings.warn("I/O error({0}): {1}".format(e.errno, e.strerror))
-        return None
+def iter_zones(topdir):
+    for dirpath, dirnames, filenames in os.walk(topdir):
+        for f in filenames:
+            if f.endswith(('.list', '.tab', '.zi', 'leapseconds')):
+                continue
+            fpath = os.path.join(dirpath, f)
+            relpath = os.path.relpath(fpath, topdir)
+            yield (relpath, tzfile(fpath, filename=relpath))
 
 
 class ZoneInfoFile(object):
@@ -48,7 +51,7 @@ class ZoneInfoFile(object):
                     # no metadata in tar file
                     self.metadata = None
         else:
-            self.zones = {}
+            self.zones = dict(iter_zones(ZONEDIRECTORY))
             self.metadata = None
 
     def get(self, name, default=None):
@@ -99,7 +102,7 @@ def get_zonefile_instance(new_instance=False):
         zif = getattr(get_zonefile_instance, '_cached_instance', None)
 
     if zif is None:
-        zif = ZoneInfoFile(getzoneinfofile_stream())
+        zif = ZoneInfoFile()
 
         get_zonefile_instance._cached_instance = zif
 
@@ -140,7 +143,7 @@ def gettz(name):
                   DeprecationWarning)
 
     if len(_CLASS_ZONE_INSTANCE) == 0:
-        _CLASS_ZONE_INSTANCE.append(ZoneInfoFile(getzoneinfofile_stream()))
+        _CLASS_ZONE_INSTANCE.append(ZoneInfoFile())
     return _CLASS_ZONE_INSTANCE[0].zones.get(name)
 
 
@@ -163,5 +166,5 @@ def gettz_db_metadata():
                   DeprecationWarning)
 
     if len(_CLASS_ZONE_INSTANCE) == 0:
-        _CLASS_ZONE_INSTANCE.append(ZoneInfoFile(getzoneinfofile_stream()))
+        _CLASS_ZONE_INSTANCE.append(ZoneInfoFile())
     return _CLASS_ZONE_INSTANCE[0].metadata
diff --git a/tests/test_imports.py b/tests/test_imports.py
index 7d0749e..4256f45 100644
--- a/tests/test_imports.py
+++ b/tests/test_imports.py
@@ -232,9 +232,8 @@ def test_import_zone_info_from():
 def test_import_zone_info_star():
     from dateutil.zoneinfo import gettz
     from dateutil.zoneinfo import gettz_db_metadata
-    from dateutil.zoneinfo import rebuild
 
-    zi_all = (gettz, gettz_db_metadata, rebuild)
+    zi_all = (gettz, gettz_db_metadata)
 
     for var in zi_all:
         assert var is not None
