{"id":259586,"date":"2021-05-26T19:00:00","date_gmt":"2021-05-26T16:00:00","guid":{"rendered":"https:\/\/en.buradabiliyorum.com\/how-to-use-dpkg-to-fix-apt-when-it-breaks-cloudsavvy-it\/"},"modified":"2021-05-26T19:00:00","modified_gmt":"2021-05-26T16:00:00","slug":"how-to-use-dpkg-to-fix-apt-when-it-breaks-cloudsavvy-it","status":"publish","type":"post","link":"https:\/\/buradabiliyorum.com\/en\/how-to-use-dpkg-to-fix-apt-when-it-breaks-cloudsavvy-it\/","title":{"rendered":"#How to Use dpkg to Fix apt When It Breaks \u2013 CloudSavvy IT"},"content":{"rendered":"<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_84 counter-hierarchy ez-toc-counter ez-toc-custom ez-toc-container-direction\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<label for=\"ez-toc-cssicon-toggle-item-6a2885563c17f\" class=\"ez-toc-cssicon-toggle-label\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #dd3333;color:#dd3333\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #dd3333;color:#dd3333\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/label><input type=\"checkbox\"  id=\"ez-toc-cssicon-toggle-item-6a2885563c17f\" checked aria-label=\"Toggle\" \/><nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/buradabiliyorum.com\/en\/how-to-use-dpkg-to-fix-apt-when-it-breaks-cloudsavvy-it\/#What_Are_apt_and_dpkg\" >What Are\u00a0apt and dpkg?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/buradabiliyorum.com\/en\/how-to-use-dpkg-to-fix-apt-when-it-breaks-cloudsavvy-it\/#Welcome_to_dpkg\" >Welcome to dpkg<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/buradabiliyorum.com\/en\/how-to-use-dpkg-to-fix-apt-when-it-breaks-cloudsavvy-it\/#Basic_dpkg_Usage\" >Basic dpkg\u00a0Usage<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/buradabiliyorum.com\/en\/how-to-use-dpkg-to-fix-apt-when-it-breaks-cloudsavvy-it\/#Making_Sure\" >Making Sure<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/buradabiliyorum.com\/en\/how-to-use-dpkg-to-fix-apt-when-it-breaks-cloudsavvy-it\/#Wrapping_up\" >Wrapping up<\/a><\/li><\/ul><\/nav><\/div>\n<p><strong>&#8220;#How to Use dpkg to Fix apt When It Breaks \u2013 CloudSavvy IT&#8221;<\/strong><\/p>\n<div id=\"article-content-area\">\n<img loading=\"lazy\" decoding=\"async\" class=\"type:primaryImage alignnone size-full wp-image-4038\" data-pagespeed-lazy-src=\"https:\/\/www.cloudsavvyit.com\/p\/uploads\/2017\/07\/add8ac45.png?width=1198&amp;trim=1,1&amp;bg-color=000&amp;pad=1,1\" alt=\"Bash Shell\" width=\"1400\" height=\"600\" src=\"\/pagespeed_static\/1.JiBnMqyl6S.gif\" onload=\"pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\" onerror=\"this.onerror=null;pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\"\/><\/p>\n<p>Have you ever broken apt? For seasoned Linux professionals, it\u2019s quite common (about every half year) to unwittingly break apt. If you know a few commands in dpkg, you can often fix the issue more easily! Find out how.<\/p>\n<h2 role=\"heading\" aria-level=\"2\"><span class=\"ez-toc-section\" id=\"What_Are_apt_and_dpkg\"><\/span>What Are\u00a0<i>apt<\/i> and <i>dpkg<\/i>?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>If you\u2019re using a Debian-based distribution like Ubuntu or Mint, your computer uses <i>apt<\/i> to handle packages. Apt stands for <i>Advanced Packaging Tool<\/i>, which allows you to install, uninstall, purge, and manage Debian packages.<\/p>\n<p>Besides <code>apt<\/code> (used at the command line), your computer likely has a higher level\/overarching Desktop-based package manager, which simply uses <code>apt<\/code>, or perhaps <code>dpkg<\/code>, in the background.<\/p>\n<p>The package manager for Debian <code>dpkg<\/code> is an alternative to managing packages on Debian-based installations. It\u2019s much more low level than <code>apt<\/code>, giving you more freedom, but also presenting a higher risk of breaking things.<\/p>\n<p>This is the reason why (unless you\u2019re a seasoned DevOps engineer) I recommend that you use\u00a0<code>apt<\/code> at all times, augmenting it with <code>dpkg<\/code>\u00a0as soon as you run into issues.<\/p>\n<p>Taking this to step <a href=\"https:\/\/buradabiliyorum.com\/en\/category\/download-scripts-themes-apps\/\" data-internallinksmanager029f6b8e52c=\"9\" title=\"Download Scripts &amp; Themes &amp; Apps\" target=\"_blank\" rel=\"noopener\">app<\/a>roach gives you the best of both worlds: The stability and ease of use of the <code>apt<\/code> package manager, with the power and granularity of the <code>dpkg<\/code> Debian package manager, once you need it.<\/p>\n<p>Let\u2019s say, for example, that you have a package that you just installed, which somehow ended up breaking the <code>apt<\/code>. Or, perhaps, a package installation accidentally got interrupted.<\/p>\n<p>Whatever the cause, <code>apt<\/code> is now considered broken, and you\u2019ve already tried things like <code>sudo apt update --fix-missing<\/code> and <code>sudo apt install --fix-broken<\/code> to no avail. If so, then \u2026<\/p>\n<h2 role=\"heading\" aria-level=\"2\"><span class=\"ez-toc-section\" id=\"Welcome_to_dpkg\"><\/span>Welcome to <i>dpkg<\/i><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>When your <code>apt<\/code> is broken, it\u2019s no fun. If it\u2019s <em>really<\/em> broken, it\u2019s even less fun. Even if someone knows what they\u2019re doing, it sometimes takes a certain level of art, and definitely, skill, to fix a broken packaging system.<\/p>\n<p>The term \u201cart\u201d is quite applicable, as you get a sense or feeling while you\u2019re running through various troubleshooting steps\u2014especially if you\u2019ve done this often\u2014whether or not something will work out during a reboot.<\/p>\n<p>The risk is always that the packaging system is so badly broken that if you reboot, your Linux instance might not come up again, and that further and potentially still more complex troubleshooting will be required.<\/p>\n<p>I would like to state at this point that all of this can be easily avoided by executing a few simple commands\u2014but regrettably, that\u2019s not the case. The fact is, the more you know, the easier it will be to fix, and the more confidence you\u2019ll have to figure out whether you\u2019re ready for a system reboot or not.<\/p>\n<p>This is where we come to <code>dpkg<\/code>. The <code>dpkg<\/code> program allows us much more granular control over all installed packages, and while there\u2019s more risk that something will go amiss, there\u2019s also much more power to change a system in exactly the way that we want to. Let\u2019s dive in.<\/p>\n<p>If you\u2019re interested in Linux in <a href=\"https:\/\/buradabiliyorum.com\/en\/category\/general\/\" data-internallinksmanager029f6b8e52c=\"3\" title=\"General\" target=\"_blank\" rel=\"noopener\">general<\/a>, you might also like to read our Bash Automation &amp; Scripting three-part <a href=\"https:\/\/buradabiliyorum.com\/en\/category\/watch-movies-tv-seriess\/\" data-internallinksmanager029f6b8e52c=\"8\" title=\"Watch Movies &amp; TV Series\" target=\"_blank\" rel=\"noopener\">series<\/a>.<\/p>\n<h2 role=\"heading\" aria-level=\"2\"><span class=\"ez-toc-section\" id=\"Basic_dpkg_Usage\"><\/span>Basic <i>dpkg<\/i>\u00a0Usage<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>We can see the packages currently on the system by simply executing <code>dpkg -l<\/code>. As the output is likely to be very verbose (although normally paginated), you can use a <code>grep<\/code> to limit the results.<\/p>\n<pre>dpkg -l | head -n5 &amp;&amp; dpkg -l | grep 'gnome-calculator'&#13;\ndpkg -l | grep 'gnome-calculator'&#13;\n<\/pre>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-10008\" data-pagespeed-lazy-src=\"https:\/\/www.cloudsavvyit.com\/p\/uploads\/2021\/03\/42790f97.png?trim=1,1&amp;bg-color=000&amp;pad=1,1\" alt=\"Our first dpkg run\" width=\"1047\" height=\"187\" src=\"\/pagespeed_static\/1.JiBnMqyl6S.gif\" onload=\"pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\" onerror=\"this.onerror=null;pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\"\/><\/p>\n<p>The first command is actually a combination of two commands (separated by <code>&amp;&amp;<\/code>, which literally means: Only execute the second command if the first one is successful).<\/p>\n<p>In the first of these two commands, we take the first five lines (using a pipe <code>|<\/code> and <code>head -n5<\/code>), and then, in the second command, we seek to list the output we\u2019re searching for. In this case, we\u2019re searching for the text <code>gnome-calculator<\/code>.<\/p>\n<p>The secondary line\/command under it shows a version that we would normally use. Once someone is familiar with the syntax of the <code>dpkg<\/code> output, the first five lines are often unnecessary. Note that the first column is referring to (visually) <code>Desired=<\/code>, with the second column referring to <code>Status=<\/code>, and the third column to <code>Err?=<\/code>. If you visually follow the lines, you\u2019ll see how they connect quickly.<\/p>\n<p>As our <code>gnome-calculator<\/code> is successfully installed without any current errors, there\u2019s no third column code under <code>Err?=<\/code>. We also note here that <code>uppercase=bad<\/code>is written in the short info relating to the third column. As previously stated, in our case, it\u2019s blank.<\/p>\n<p>The first column shows the desired status, and the second column shows the current status. Both show as <code>i<\/code> (<code>Install[ed]<\/code> and <code>Inst[alled]<\/code> respectively, and this (<code>ii<\/code>) is the most common sequence you\u2019ll (want to) see. It basically means that\u00a0<code>everything is fine, that the package is installed, and that there are no issues<\/code>.<\/p>\n<p>Also note that, in the column descriptions between the parentheses, the uppercase letter indicates the connection between any possible letter seen and the relevant term. For example, consider how <code>f<\/code> refers to <code>halF-conf<\/code>, noting the uppercase <code>F<\/code> in the same.<\/p>\n<p>Let\u2019s now take a look at another output to compare. This time, we\u2019ll leave off the first five lines, and you can get a little more used to reading the output even without the headers.<\/p>\n<pre>dpkg -l | grep 'mintwelcome'&#13;\n<\/pre>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-10009\" data-pagespeed-lazy-src=\"https:\/\/www.cloudsavvyit.com\/p\/uploads\/2021\/03\/5188c3ae.png?trim=1,1&amp;bg-color=000&amp;pad=1,1\" alt=\"dpkg -l | grep 'mintwelcome' output\" width=\"1073\" height=\"53\" src=\"\/pagespeed_static\/1.JiBnMqyl6S.gif\" onload=\"pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\" onerror=\"this.onerror=null;pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\"\/><\/p>\n<p>Here, we see the interesting result of <code>rc<\/code>, where <code>ii<\/code> used to be for the <code>gnome-calculator<\/code>. If you search for the <code>r<\/code> in the first <code>Desired=<\/code> column description that we saw above, you can see that it stands for <code>Remove[d]<\/code>, and that <code>c<\/code> in the second column stands for <code>Conf-files<\/code>.<\/p>\n<p>Aha! This (<code>mintwelcome<\/code>, a welcome package on Mint) is a package that we uninstalled at some point, yet the configuration files for the same remain. Let\u2019s purge it!<\/p>\n<pre>dpkg --purge 'mintwelcome'&#13;\nsudo dpkg --purge 'mintwelcome'&#13;\ndpkg -l | grep 'mintwelcome'&#13;\n<\/pre>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-10011\" data-pagespeed-lazy-src=\"https:\/\/www.cloudsavvyit.com\/p\/uploads\/2021\/03\/8d448517-1.png?trim=1,1&amp;bg-color=000&amp;pad=1,1\" alt=\"Purging 'mintwelcome' configuration files with dpkg\" width=\"636\" height=\"120\" src=\"\/pagespeed_static\/1.JiBnMqyl6S.gif\" onload=\"pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\" onerror=\"this.onerror=null;pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\"\/><\/p>\n<p>Note that you can also use the <code>-P<\/code> shorthand instead of using <code>--purge<\/code>.<\/p>\n<p>In the first command, we can try to purge <code>mintwelcome<\/code> without using <code>sudo<\/code>. However, this won\u2019t work. You need super-user\/root-level privileges to uninstall (or install or purge) packages. We can run again using <code>sudo<\/code>, and our package will be purged.<\/p>\n<p>Note that the term <i>purge<\/i> is used by both <code>apt<\/code> as well as by\u00a0<code>dpkg<\/code> to indicate that we want to completely purge a package rather than just uninstall it, which will leave any configuration files.<\/p>\n<h2 role=\"heading\" aria-level=\"2\"><span class=\"ez-toc-section\" id=\"Making_Sure\"><\/span>Making Sure<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>I trust that you might start to appreciate the power, control, and granularity that\u00a0<code>dpkg<\/code> can provide you with when managing packages on your Debian-based distribution, such as Ubuntu, or, in this case, Mint. It would be easy, for example, to scan for configuration file remainders of previously uninstalled packages by simply executing:<\/p>\n<pre>dpkg -l | grep '^rc'&#13;\n<\/pre>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-10012\" data-pagespeed-lazy-src=\"https:\/\/www.cloudsavvyit.com\/p\/uploads\/2021\/03\/0c2e4de2.png?trim=1,1&amp;bg-color=000&amp;pad=1,1\" alt=\"dpkg listing output for javascript-common configuration files\" width=\"1164\" height=\"49\" src=\"\/pagespeed_static\/1.JiBnMqyl6S.gif\" onload=\"pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\" onerror=\"this.onerror=null;pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\"\/><\/p>\n<p>Before removing any such configuration files, you\u2019ll want to make doubly sure that there are no packages installed with a similar name. For example, in this case, we can run:<\/p>\n<pre>dpkg -l | grep 'javascript'&#13;\n<\/pre>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-10013\" data-pagespeed-lazy-src=\"https:\/\/www.cloudsavvyit.com\/p\/uploads\/2021\/03\/00bc96c1.png?trim=1,1&amp;bg-color=000&amp;pad=1,1\" alt=\"dpkg -l | grep 'javascript' output\" width=\"1407\" height=\"88\" src=\"\/pagespeed_static\/1.JiBnMqyl6S.gif\" onload=\"pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\" onerror=\"this.onerror=null;pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\"\/><\/p>\n<p>Note how we removed the second part of\u00a0<code>'javascript-common'<\/code>\u00a0to search for\u00a0<code>'javascript'<\/code>.<\/p>\n<p>Safe to remove or not? You can see how great power comes with great responsibility, as always in life. The decision to remove it or not is yours. There are generally three things to always keep at the back of your mind when working with <code>dpkg<\/code>:<\/p>\n<p><strong>Firstly<\/strong>, you\u2019ll want to check, double-check, and <a href=\"https:\/\/buradabiliyorum.com\/en\/category\/trip-and-travel\/\" data-internallinksmanager029f6b8e52c=\"10\" title=\"Trip &amp; Travel\" target=\"_blank\" rel=\"noopener\">trip<\/a>le-check to be sure. For example, in the first output above, we might have gone ahead and nonchalantly removed <code>javascript-common<\/code> without checking to see whether there were any other Javascript packages on the system.<\/p>\n<p>Was it the best course of action? Perhaps, but the surety\/confidence level surely went down as soon as we did our first check, as there definitely are other Javascript packages on the system.<\/p>\n<p>Also, note that there is really nothing broken here. It\u2019s fine to leave the configuration files for this seemingly removed package. The old adage \u201cIf it ain\u2019t broke, don\u2019t fix it\u201d would surely seem to apply in this case. It\u2019s a good one to keep in mind when using\u00a0<code>dpkg<\/code>.<\/p>\n<p><strong>Secondly<\/strong>, it\u2019s important to remember that <code>apt<\/code> is a package manager that keeps all connections (i.e. versions and dependencies) between packages <i>in mind<\/i> when installing, uninstalling, or purging packages.<\/p>\n<p>This isn\u2019t the case for <code>dpkg<\/code>, which is much more package-based. There\u2019s more granularity, but also more risk of breaking things. If a package relies on another or on a library, someone is sure to break things simply by uninstalling the main package using <code>dpkg<\/code>.<\/p>\n<p><strong>Thirdly<\/strong>, most Linux packages have <strong>many<\/strong> dependencies. It\u2019s thus not recommended to simply use <code>dpkg<\/code> for standard package management, reiterating our original advice to use <code>apt<\/code> by default and swap to <code>dpkg<\/code> when it becomes necessary.<\/p>\n<p>To remove\/uninstall a package rather than purge it (i.e. leave the configuration files), you can use the <code>--remove<\/code> (or <code>-r<\/code>) option to <code>dpkg<\/code>. To verify a package, use <code>--verify<\/code> (or <code>-V<\/code>). The <code>--audit<\/code> (or <code>-C<\/code>) option against a package does database sanity and consistency checks for the package (or for all packages if no package is specified).<\/p>\n<p>For more options, see <code>man dpkg<\/code> executed from your terminal. There are also specific, more complex commands that can be used for various packaging system issues. For these, it\u2019s usually best to employ your favorite search engine for the specific issue or situation seen at the time that it occurs. Often, someone else has already run into it and documented the details. If you find out something new, take a few minutes to log your findings on some forum or relevant discussion thread.<\/p>\n<h2 role=\"heading\" aria-level=\"2\"><span class=\"ez-toc-section\" id=\"Wrapping_up\"><\/span>Wrapping up<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>In this article, we started exploring <code>dpkg<\/code> and how it can help us with granular package management, unlike <code>apt<\/code>, which will handle packages and all their dependencies. Remember, in these complex package management issue debugging situations, with great power comes great responsibility.<\/p>\n<p>We also looked at how to follow a more risk-averse approach whilst realizing that in-depth package management debugging is similar to art, and the better a painter is, the more successful the painting\u2014ahem, the reboot will be.\n<\/p><\/div>\n<blockquote><p><strong><span style=\"color: #ff6600;\">If you liked the article, do not forget to share it with your friends. Follow us on\u00a0<span style=\"color: #ff0000;\"><a style=\"color: #ff0000;\" href=\"https:\/\/news.google.com\/publications\/CAAqBwgKMLG0nwswvr63Aw\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Google News<\/a><\/span>\u00a0too, click on the star and choose us from your favorites.<\/span><\/strong><\/p><\/blockquote>\n<blockquote>\n<p style=\"text-align: center;\">For forums sites go to <span style=\"color: #ff9900;\"><a style=\"color: #ff9900;\" href=\"https:\/\/forum.buradabiliyorum.com\/\" target=\"_blank\" rel=\"noopener\">Forum.BuradaBiliyorum.Com<\/a><\/span><\/strong><\/p>\n<\/blockquote>\n<blockquote>\n<p style=\"text-align: center;\"><strong>If you want to read more like this article, you can visit our <span style=\"color: #ff9900;\"><a style=\"color: #ff9900;\" href=\"https:\/\/en.buradabiliyorum.com\/technology\/\" target=\"_blank\" rel=\"noopener\">Technology category.<\/a><\/span><\/strong><\/p>\n<\/blockquote>\n<p><span style=\"color: black;\"><a style=\"color: #ff9900;\" href=\"https:\/\/www.cloudsavvyit.com\/10007\/linux-how-to-use-dpkg-to-fix-apt-when-it-breaks\/\" target=\"_blank\" rel=\"noopener\">Source<\/a><\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>&#8220;#How to Use dpkg to Fix apt When It Breaks \u2013 CloudSavvy IT&#8221; Have you ever broken apt? For seasoned Linux professionals, it\u2019s quite common (about every half year) to unwittingly break apt. If you know a few commands in dpkg, you can often fix the issue more easily! Find out how. What Are\u00a0apt and&#8230;<\/p>\n","protected":false},"author":1,"featured_media":259587,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"fifu_image_url":"https:\/\/www.cloudsavvyit.com\/p\/uploads\/2017\/07\/add8ac45.png","fifu_image_alt":"","footnotes":""},"categories":[18],"tags":[],"class_list":["post-259586","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-technology"],"_links":{"self":[{"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/posts\/259586","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/comments?post=259586"}],"version-history":[{"count":0,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/posts\/259586\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/media\/259587"}],"wp:attachment":[{"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/media?parent=259586"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/categories?post=259586"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/tags?post=259586"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}