{"id":18196,"date":"2019-11-10T11:20:19","date_gmt":"2019-11-10T19:20:19","guid":{"rendered":"https:\/\/www.kith.org\/jed\/?p=18196"},"modified":"2019-11-10T12:51:21","modified_gmt":"2019-11-10T20:51:21","slug":"yet-another-attempt-to-install-a-command-line-tool","status":"publish","type":"post","link":"https:\/\/www.kith.org\/jed\/2019\/11\/10\/yet-another-attempt-to-install-a-command-line-tool\/","title":{"rendered":"Yet another attempt to install a command-line tool"},"content":{"rendered":"\r\n<p>Me: Hey, cool, there\u2019s a <a href=\"https:\/\/inclusivepublishing.org\/toolbox\/accessibility-checker\/getting-started\/\">tool that checks ePub files for accessibility<\/a>!<\/p>\r\n<p>Me: \u2026Uh-oh, it\u2019s a command-line tool.<\/p>\r\n<p>Me: [Downloads and installs node.js, as required by the accessibility-tool instructions.]<\/p>\r\n<p>Me: [Figures out that a certain command must be run as superuser, which isn\u2019t clear from the cryptic error message.]<\/p>\r\n<p>Me: [Runs npm command to install accessibility tool.]<\/p>\r\n<p>Me: [Runs into another cryptic error message about trying to install Chromium.]<\/p>\r\n<p>Me: [Follows instructions in cryptic error message, but they don\u2019t help.]<\/p>\r\n<p>Me: [Googles cryptic error message.]<\/p>\r\n<p>Me: [Discovers that to resolve the cryptic error message, you have to set a value for a variable, but instead of using the all-caps variable name specified in the error message, <a href=\"https:\/\/github.com\/GoogleChrome\/puppeteer\/issues\/2270#issuecomment-407407984\">you have to use an all-lowercase version<\/a>.]<\/p>\r\n<p>Me: [Wonders why a tool that\u2019s supposed to improve accessibility is so damn hard to install.]<\/p>\r\n<hr width=\"25%\" \/>\r\n<p>(For past command-line adventures, see also <a href=\"https:\/\/www.kith.org\/jed\/2014\/10\/04\/how-to-install-unix-like-softw\/\">How to install Unix-like software<\/a> and <a href=\"https:\/\/www.kith.org\/jed\/2015\/09\/19\/more-software-installation\/\">More software installation<\/a>.)<\/p>\r\n<hr width=\"25%\" \/>\r\n<p>Update a few minutes later: Turns out that the tool won\u2019t run without Chromium installed, so my bypassing of the Chromium-won\u2019t-install problem didn\u2019t fix things after all.<\/p>\r\n<hr width=\"25%\" \/>\r\n<p>Update another ten minutes later: Sigh. The installation of the accessibility tool fails because it can\u2019t create a directory, '\/usr\/local\/lib\/node_modules\/@daisy\/ace\/node_modules\/puppeteer\/.local-chromium', even though it\u2019s running as superuser. So I created that directory myself and re-ran the installer,  and the same thing happened. Apparently the installer deletes everything under a certain directory before it installs, so if I create the directory myself ahead of time, then first the installer deletes the directory I just created, and then it tries to re-create it, but can\u2019t because it doesn\u2019t know it has superuser permissions, so it fails with an error message.<\/p>\r\n<p>So I give up; it\u2019s not worth continuing to try to fix the problem. Normally I would try to file a bug, but in my experience, trying to file a bug for this kind of thing is likely to take hours and <a href=\"https:\/\/www.kith.org\/jed\/2010\/12\/18\/jquery-basics\/\">end up not working<\/a>. I\u2019ve got too much else that I need to do today.<\/p>\r\n<hr width=\"25%\" \/>\r\n<p>One more update: A friend pointed out to me that the accessibility tool\u2019s troubleshooting section explains <a href=\"https:\/\/daisy.github.io\/ace\/help\/troubleshooting\/#i-receive-an-eaccess-error-when-trying-to-install-ace-as-a-super-user-with-sudo\">how to fix this problem<\/a>.<\/p>\r\n<p>So I\u2019ve now got the tool installed and running. Whew.<\/p>\r\n<p>But I find the troubleshooting instructions offputting. \u201cYou need to tell the installation scripts to enforce the super-user permissions\u201d? Isn\u2019t that what running under <code>sudo<\/code> is supposed to do? And it turns out that the standard installation, without which the tool doesn\u2019t run at all, requires you to set a parameter called <code>--unsafe-perm<\/code>, which really doesn\u2019t sound like a safe thing to do. And nowhere in the basic instructions for installing the tool does it mention that you need to do this.<\/p>\r\n<p>I think maybe this problem only happens if you install using <code>sudo<\/code>, and they don\u2019t expect users to do that\u2014which is funny, because most other command-line tools I\u2019ve tried to install won\u2019t install without using <code>sudo<\/code>.<\/p>\r\n<p>So I feel like their main instructions ought to explicitly say something like \u201cDon\u2019t install this using <code>sudo<\/code>. If you want to install it using <code>sudo<\/code>, then use this command line instead: \u2026\u201d Or at least explicitly link to the troubleshooting page, which it didn\u2019t occur to me to go looking for.<\/p>\r\n<p>On the plus side, it turns out that the tool\u2019s maintainers invite comment via Twitter as well as bug-filing, so instead of trying to go through the bug-filing process, I\u2019ll just tweet to them. Hi, Ace maintainers! I do appreciate your work, I\u2019m just frustrated at the amount of time I lost this morning trying to install your tool.<\/p>\r\n\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":5,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[24],"tags":[],"class_list":["post-18196","post","type-post","status-publish","format-standard","hentry","category-software"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.kith.org\/jed\/wp-json\/wp\/v2\/posts\/18196","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.kith.org\/jed\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.kith.org\/jed\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.kith.org\/jed\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/www.kith.org\/jed\/wp-json\/wp\/v2\/comments?post=18196"}],"version-history":[{"count":11,"href":"https:\/\/www.kith.org\/jed\/wp-json\/wp\/v2\/posts\/18196\/revisions"}],"predecessor-version":[{"id":18207,"href":"https:\/\/www.kith.org\/jed\/wp-json\/wp\/v2\/posts\/18196\/revisions\/18207"}],"wp:attachment":[{"href":"https:\/\/www.kith.org\/jed\/wp-json\/wp\/v2\/media?parent=18196"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.kith.org\/jed\/wp-json\/wp\/v2\/categories?post=18196"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.kith.org\/jed\/wp-json\/wp\/v2\/tags?post=18196"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}