{"id":11300,"date":"2022-07-26T19:21:26","date_gmt":"2022-07-26T13:51:26","guid":{"rendered":"https:\/\/opstree.com\/blog\/\/?p=11300"},"modified":"2022-08-02T11:44:01","modified_gmt":"2022-08-02T06:14:01","slug":"how-to-fix-the-dpkg-lock-file-error-in-packer","status":"publish","type":"post","link":"https:\/\/opstree.com\/blog\/2022\/07\/26\/how-to-fix-the-dpkg-lock-file-error-in-packer\/","title":{"rendered":"How to fix the dpkg lock file error in Packer?"},"content":{"rendered":"\n<p><\/p>\n\n\n\n<p>Today everyone is switching to cloud platforms. To this, we need to install basic software or modify certain Configurations in each server and to all this, we call prerequisites. So we have a concept of creating a <strong>BASE IMAGE<\/strong> and <strong>GOLDEN IMAGE<\/strong>. We were creating Golden Server Image for one of our clients using <strong>Packer <\/strong>to fulfill the prerequisites, and it is when  I faced this issue.<\/p>\n\n\n\n<pre class=\"wp-block-verse has-white-color has-dark-gray-background-color has-text-color has-background\">\u2018E: Could not get lock \/var\/lib\/dpkg\/lock\u2019<\/pre>\n\n\n\n<p>Firstly, we will talk about <strong>Packer<\/strong>.<\/p>\n\n\n\n<!--more-->\n\n\n\n<h2 class=\"wp-block-heading\"><strong>What is Packer?<\/strong>&nbsp;<\/h2>\n\n\n\n<p>Packer is an <strong><em>open-source<\/em><\/strong> <strong>DevOps <\/strong>tool made by <strong>Hashicorp<\/strong> to create identical machine images for multiple platforms from a single JSON config file. This tool really works when it comes to creating immutable architecture. Which helps us to create instances with predefined requirements of the client and requesters.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">How to use Packer?<\/h2>\n\n\n\n<p>You can use Packer for<strong> AWS, GCP, Azure, <\/strong>etc<strong>.<\/strong><\/p>\n\n\n\n<p>Packer is a <strong>template-driven <\/strong>tool and templates are written in <strong>JSON<\/strong> format<strong>.<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-verse has-white-color has-dark-gray-background-color has-text-color has-background\">{\n\n  \"variables\": {\n\n    \"region\": \"\"\n\n  },\n\n  \"builders\": [\n\n    {\n\n      \"type\": \"amazon-ebs\",\n\n      \"profile\": \"default\",\n\n      \"region\": \"{{user `region`}}\",\n\n      \"instance_type\": \"t2.micro\",\n\n      \"source_ami\": \"base_AMI\",\n\n      \"ssh_username\": \"ssh-user\"\n\n    }\n\n  ],\n\n  \"provisioners\": [\n\n    {\n\n      \"type\": \"shell\",\n\n      \"script\": \".\/script.sh\"\n\n    },\n\n    {\n\n      \"type\": \"shell\",\n\n      \"inline\": [\n\n        \"sudo apt update\",\n\n        \"sleep 20\"\n\n      ]\n\n    },\n\n    {\n\n      \"type\": \"shell\",\n\n      \"script\": \"install.sh\",\n\n      \"max_retries\": \"15\"\n\n    }\n\n  ]\n\n}<\/pre>\n\n\n\n<p>oftentimes, while running this packer script&nbsp;we all see an error like<strong> <\/strong><\/p>\n\n\n\n<pre class=\"wp-block-verse has-white-color has-dark-gray-background-color has-text-color has-background\">&lt;strong&gt;\u201c \/var\/lib\/dpkg\/lock-frontend \u201d&lt;\/strong&gt;<\/pre>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img decoding=\"async\" src=\"https:\/\/opstree.com\/blog\/\/wp-content\/uploads\/2022\/07\/packer_lock.png?w=1024\" alt=\"\" class=\"wp-image-11322\" width=\"800\" \/><\/figure>\n\n\n\n<p>It happened to me as well. When we were creating an Image for one of our applications. It was being created on<strong> Amazon Machine Image<\/strong> and while running one of the bash scripts, the Packer pipeline broke down repeatedly. That got me confused and  I was clueless about how to fix it. So, I started exploring this error and I found the cause below.<\/p>\n\n\n\n<ul><li>It could occur in our local system. OR<\/li><li>It could occur while running the packer script.<\/li><\/ul>\n\n\n\n<p>Usually, we see this error because some other program is trying to update <strong>Ubuntu<\/strong>. When a command or application is updating the system or installing new software, it locks the <strong>dpkg file<\/strong> (Debian package manager).&nbsp;<\/p>\n\n\n\n<p>This locking is done so that two processes don\u2019t change the content at the same time as it may lead to an unwarranted situation and possibly a broken system.&nbsp;<\/p>\n\n\n\n<p>We have 2 ways to solve this problem. One is for the local system and another one is for the packer. The solution for the error occurring on the local system can be easily found on the internet. But for packer script, it was pretty hard to find.<\/p>\n\n\n\n<p>So I figured out a solution to the very problem.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>Let\u2019s see what steps can you take to fix this issue of \u2018unable to lock administration directory\u2019.<\/strong>&nbsp;<\/h4>\n\n\n\n<p>While running the shell script if we are facing this issue, we can use the \u201cWHILE LOOP\u201d for this and make it SLEEP till this gets unlocked.&nbsp;<\/p>\n\n\n\n<p>We can add This command to our SCRIPT&nbsp;<\/p>\n\n\n\n<pre class=\"wp-block-verse has-white-color has-dark-gray-background-color has-text-color has-background\">while sudo lsof \/var\/lib\/dpkg\/lock-frontend ; do sleep 10; done;<\/pre>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img decoding=\"async\" src=\"https:\/\/opstree.com\/blog\/\/wp-content\/uploads\/2022\/07\/packer_lock_solve.png?w=1024\" alt=\"\" class=\"wp-image-11323\" width=\"800\" \/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Conclusion<\/h2>\n\n\n\n<p>It was the solution we used to skip the error. Thankfully, it resolved our issue. Now, this got us thinking &#8211; have you ever come across an issue like this? We totally invite your suggestions.<br>Do let us know in the comments below.<\/p>\n\n\n\n<p><strong>Blog Pundit:<\/strong>&nbsp;<a href=\"https:\/\/opstree.com\/blog\/\/author\/deepakgupta97\/\"><strong>Deepak Gupta<\/strong><\/a>&nbsp;and&nbsp;<a rel=\"noreferrer noopener\" href=\"https:\/\/opstree.com\/blog\/\/author\/sandeep7c51ad81ba\/\" target=\"_blank\"><strong>Sandeep Rawat<\/strong><\/a><\/p>\n\n\n\n<p><strong><a href=\"https:\/\/www.opstree.com\/contact-us?utm_source=wordpress&amp;utm_medium=blog&amp;utm_campaign=How-to-fix-the-dpkg-lock-file-error-in-Packer%3F\" target=\"_blank\" rel=\"noreferrer noopener\">Opstree<\/a><\/strong>&nbsp;is an End to End DevOps solution provider<\/p>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/www.opstree.com\/contact-us?utm_source=WordPress&amp;utm_medium=Blog&amp;utm_campaign=Terraform_Version_Upgrade\" target=\"_blank\" rel=\"noreferrer noopener\">CONTACT US<\/a><\/div>\n<\/div>\n\n\n\n<p class=\"has-text-align-center\"><strong>Connect Us <\/strong><\/p>\n\n\n\n<ul class=\"wp-block-social-links aligncenter is-content-justification-center is-layout-flex wp-container-core-social-links-is-layout-1 wp-block-social-links-is-layout-flex\"><li class=\"wp-social-link wp-social-link-linkedin  wp-block-social-link\"><a href=\"https:\/\/www.linkedin.com\/company\/opstree-solutions\" class=\"wp-block-social-link-anchor\" target=\"_blank\" rel=\"noopener\"><svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" version=\"1.1\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M19.7,3H4.3C3.582,3,3,3.582,3,4.3v15.4C3,20.418,3.582,21,4.3,21h15.4c0.718,0,1.3-0.582,1.3-1.3V4.3 C21,3.582,20.418,3,19.7,3z M8.339,18.338H5.667v-8.59h2.672V18.338z M7.004,8.574c-0.857,0-1.549-0.694-1.549-1.548 c0-0.855,0.691-1.548,1.549-1.548c0.854,0,1.547,0.694,1.547,1.548C8.551,7.881,7.858,8.574,7.004,8.574z M18.339,18.338h-2.669 v-4.177c0-0.996-0.017-2.278-1.387-2.278c-1.389,0-1.601,1.086-1.601,2.206v4.249h-2.667v-8.59h2.559v1.174h0.037 c0.356-0.675,1.227-1.387,2.526-1.387c2.703,0,3.203,1.779,3.203,4.092V18.338z\"><\/path><\/svg><span class=\"wp-block-social-link-label screen-reader-text\">LinkedIn<\/span><\/a><\/li>\n\n<li class=\"wp-social-link wp-social-link-youtube  wp-block-social-link\"><a href=\"https:\/\/www.youtube.com\/channel\/UCeLma6SpNYH7jjYKSBNSexw\" class=\"wp-block-social-link-anchor\" target=\"_blank\" rel=\"noopener\"><svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" version=\"1.1\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M21.8,8.001c0,0-0.195-1.378-0.795-1.985c-0.76-0.797-1.613-0.801-2.004-0.847c-2.799-0.202-6.997-0.202-6.997-0.202 h-0.009c0,0-4.198,0-6.997,0.202C4.608,5.216,3.756,5.22,2.995,6.016C2.395,6.623,2.2,8.001,2.2,8.001S2,9.62,2,11.238v1.517 c0,1.618,0.2,3.237,0.2,3.237s0.195,1.378,0.795,1.985c0.761,0.797,1.76,0.771,2.205,0.855c1.6,0.153,6.8,0.201,6.8,0.201 s4.203-0.006,7.001-0.209c0.391-0.047,1.243-0.051,2.004-0.847c0.6-0.607,0.795-1.985,0.795-1.985s0.2-1.618,0.2-3.237v-1.517 C22,9.62,21.8,8.001,21.8,8.001z M9.935,14.594l-0.001-5.62l5.404,2.82L9.935,14.594z\"><\/path><\/svg><span class=\"wp-block-social-link-label screen-reader-text\">YouTube<\/span><\/a><\/li>\n\n<li class=\"wp-social-link wp-social-link-github  wp-block-social-link\"><a href=\"https:\/\/github.com\/OpsTree\" class=\"wp-block-social-link-anchor\" target=\"_blank\" rel=\"noopener\"><svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" version=\"1.1\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M12,2C6.477,2,2,6.477,2,12c0,4.419,2.865,8.166,6.839,9.489c0.5,0.09,0.682-0.218,0.682-0.484 c0-0.236-0.009-0.866-0.014-1.699c-2.782,0.602-3.369-1.34-3.369-1.34c-0.455-1.157-1.11-1.465-1.11-1.465 c-0.909-0.62,0.069-0.608,0.069-0.608c1.004,0.071,1.532,1.03,1.532,1.03c0.891,1.529,2.341,1.089,2.91,0.833 c0.091-0.647,0.349-1.086,0.635-1.337c-2.22-0.251-4.555-1.111-4.555-4.943c0-1.091,0.39-1.984,1.03-2.682 C6.546,8.54,6.202,7.524,6.746,6.148c0,0,0.84-0.269,2.75,1.025C10.295,6.95,11.15,6.84,12,6.836 c0.85,0.004,1.705,0.114,2.504,0.336c1.909-1.294,2.748-1.025,2.748-1.025c0.546,1.376,0.202,2.394,0.1,2.646 c0.64,0.699,1.026,1.591,1.026,2.682c0,3.841-2.337,4.687-4.565,4.935c0.359,0.307,0.679,0.917,0.679,1.852 c0,1.335-0.012,2.415-0.012,2.741c0,0.269,0.18,0.579,0.688,0.481C19.138,20.161,22,16.416,22,12C22,6.477,17.523,2,12,2z\"><\/path><\/svg><span class=\"wp-block-social-link-label screen-reader-text\">GitHub<\/span><\/a><\/li>\n\n<li class=\"wp-social-link wp-social-link-facebook  wp-block-social-link\"><a href=\"https:\/\/www.facebook.com\/opstree\" class=\"wp-block-social-link-anchor\" target=\"_blank\" rel=\"noopener\"><svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" version=\"1.1\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M12 2C6.5 2 2 6.5 2 12c0 5 3.7 9.1 8.4 9.9v-7H7.9V12h2.5V9.8c0-2.5 1.5-3.9 3.8-3.9 1.1 0 2.2.2 2.2.2v2.5h-1.3c-1.2 0-1.6.8-1.6 1.6V12h2.8l-.4 2.9h-2.3v7C18.3 21.1 22 17 22 12c0-5.5-4.5-10-10-10z\"><\/path><\/svg><span class=\"wp-block-social-link-label screen-reader-text\">Facebook<\/span><\/a><\/li>\n\n<li class=\"wp-social-link wp-social-link-medium  wp-block-social-link\"><a href=\"https:\/\/medium.com\/buildpiper\" class=\"wp-block-social-link-anchor\" target=\"_blank\" rel=\"noopener\"><svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" version=\"1.1\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M20.962,7.257l-5.457,8.867l-3.923-6.375l3.126-5.08c0.112-0.182,0.319-0.286,0.527-0.286c0.05,0,0.1,0.008,0.149,0.02 c0.039,0.01,0.078,0.023,0.114,0.041l5.43,2.715l0.006,0.003c0.004,0.002,0.007,0.006,0.011,0.008 C20.971,7.191,20.98,7.227,20.962,7.257z M9.86,8.592v5.783l5.14,2.57L9.86,8.592z M15.772,17.331l4.231,2.115 C20.554,19.721,21,19.529,21,19.016V8.835L15.772,17.331z M8.968,7.178L3.665,4.527C3.569,4.479,3.478,4.456,3.395,4.456 C3.163,4.456,3,4.636,3,4.938v11.45c0,0.306,0.224,0.669,0.498,0.806l4.671,2.335c0.12,0.06,0.234,0.088,0.337,0.088 c0.29,0,0.494-0.225,0.494-0.602V7.231C9,7.208,8.988,7.188,8.968,7.178z\"><\/path><\/svg><span class=\"wp-block-social-link-label screen-reader-text\">Medium<\/span><\/a><\/li><\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Today everyone is switching to cloud platforms. To this, we need to install basic software or modify certain Configurations in each server and to all this, we call prerequisites. So we have a concept of creating a BASE IMAGE and GOLDEN IMAGE. We were creating Golden Server Image for one of our clients using Packer &hellip; <a href=\"https:\/\/opstree.com\/blog\/2022\/07\/26\/how-to-fix-the-dpkg-lock-file-error-in-packer\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;How to fix the dpkg lock file error in Packer?&#8221;<\/span><\/a><\/p>\n","protected":false},"author":215838922,"featured_media":29900,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_coblocks_attr":"","_coblocks_dimensions":"","_coblocks_responsive_height":"","_coblocks_accordion_ie_support":"","jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","enabled":false},"version":2}},"categories":[28070474],"tags":[460,512213505,11869,768739292,4996032],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/opstree.com\/blog\/wp-content\/uploads\/2025\/11\/DevSecOps-1.jpg","jetpack_likes_enabled":true,"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/pfDBOm-2Wg","jetpack-related-posts":[],"_links":{"self":[{"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/posts\/11300"}],"collection":[{"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/users\/215838922"}],"replies":[{"embeddable":true,"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/comments?post=11300"}],"version-history":[{"count":19,"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/posts\/11300\/revisions"}],"predecessor-version":[{"id":11414,"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/posts\/11300\/revisions\/11414"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/media\/29900"}],"wp:attachment":[{"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/media?parent=11300"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/categories?post=11300"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/tags?post=11300"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}