Fix: Apt deb_package fact and don't assume version
Don't assume version exists @ https://github.com/Fizzadar/pyinfra/blob/develop/pyinfra/modules/apt.py#L165

And fix the regex here: https://github.com/Fizzadar/pyinfra/blob/develop/pyinfra/facts/apt.py#L98 - eg for ES `Version: 1:5.2.0-1`
diff --git a/pyinfra/facts/apt.py b/pyinfra/facts/apt.py
index 5861de54..d005fd1d 100644
--- a/pyinfra/facts/apt.py
+++ b/pyinfra/facts/apt.py
@@ -95,7 +95,7 @@ class DebPackage(FactBase):
 
     _regexes = {
         'name': r'^Package: ([a-zA-Z0-9\\-]+)$',
-        'version': r'^Version: ([0-9\\.\\-]+)$',
+        'version': r'^Version: ([0-9\\:\\.\\-]+)$',
     }
 
     def command(self, name):
diff --git a/pyinfra/modules/apt.py b/pyinfra/modules/apt.py
index 5a48e21c..0084594c 100644
--- a/pyinfra/modules/apt.py
+++ b/pyinfra/modules/apt.py
@@ -162,7 +162,7 @@ def deb(state, host, source, present=True, force=False):
 
         if (
             info['name'] in current_packages
-            and info['version'] in current_packages[info['name']]
+            and info.get('version') in current_packages[info['name']]
         ):
             exists = True
 
['pyinfra/modules/apt.py', 'pyinfra/facts/apt.py']