[PATCH v3 2/2] binman: bintool: run 'apt-get update -y' on first invocation of apt_install()

Jerome Forissier jerome.forissier at linaro.org
Thu Jul 24 11:12:41 CEST 2025


'apt-get update -y' may be required to make sure that the list of
packages is up-to-date and that the subsequent 'apt-get install'
operations can find the requested packages.

Fixes the following CI error:

 Fetch: zstd
 - trying method: binary download
 - sudo apt-get install -y zstd
 Exception: Error 100 running 'sudo apt-get install -y zstd': E: Unable to locate package zstd

Signed-off-by: Jerome Forissier <jerome.forissier at linaro.org>
---

Changes in v3:
- Really use apt-get instead of apt

Changes in v2:
- Use apt-get instead of apt

 tools/binman/bintool.py | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/tools/binman/bintool.py b/tools/binman/bintool.py
index f46bb52a7b3..9c76c8881a4 100644
--- a/tools/binman/bintool.py
+++ b/tools/binman/bintool.py
@@ -55,6 +55,9 @@ class Bintool:
     # must be called before this class is used.
     tooldir = ''
 
+    # Flag to run 'apt-get update -y' once on first use of apt_install()
+    apt_updated = False
+
     def __init__(self, name, desc, version_regex=None, version_args='-V'):
         self.name = name
         self.desc = desc
@@ -421,6 +424,11 @@ class Bintool:
         Returns:
             True, assuming it completes without error
         """
+        if not cls.apt_updated:
+            args = ['sudo', 'apt-get', 'update', '-y']
+            print('- %s' % ' '.join(args))
+            tools.run(*args)
+            cls.apt_updated = True
         args = ['sudo', 'apt-get', 'install', '-y', package]
         print('- %s' % ' '.join(args))
         tools.run(*args)
-- 
2.43.0



More information about the U-Boot mailing list