Below is my ‘quick fix’ (bandaid) solution to the following errors/exceptions.

The errors

Error: Execution of '/usr/bin/gem install --no-rdoc --no-ri cowsay' returned 1: ERROR:  While executing gem ... (OptionParser::InvalidOption)invalid option: --no-rdocDid you mean?  no-force

A reference article

The ‘quick fix’

W.r.t. the reference article, I searched for the file ‘gem.rb’. Since ‘locate’ was not installed in the OS, I used the ‘find’ command to look for the file:

> find / -name 'gem.rb'

In the gem.rb file, I found the line throwing the exception and made the following modification:

#command << "--no-rdoc" << "--no-ri" << resource[:name]
command << "--no-document" << resource[:name]



I have just started using Azure cloud. As a frugal engineer, I will make full use of the 30 days free tier.

As I added more VMs to my free account, it finally hit the limit. On the Virtual Machines page, I could not find a button to downsize the ones I already created (even if I power the VM down). So I started deleting them to free up the limit.

But the following error persisted, even after I deleted every VM/refreshed the page:

X vCPUs are needed for this configuration, but only 0 vCPUs (of 4) remain in your subscription.

Eventually it turns out that there’s a need to click on the ‘Refresh quota’ link (a Blue hyperlink below the error), so it will get rid of the error.



Depending on which version of node exporter you are using, one of the following options will work.

Node exporter version go1.14.4

/usr/local/bin/node_exporter \
--collector.systemd \

Node exporter version go1.15.8

Since the option “collector.system.unit-whitelist” was deprecated, the syntax has changed to “collector.systemd.unit-include”.

Note that there might be a bug in…



PAM, or Linux Pluggable Authentication Modules

PAM stacks are not very easy to read. If you made a change but didn’t test it well, it might not work as expected. Or worse, you may end up exposing a vulnerability in your authentication mechanisms.

Here are my notes about the 3 terms in the PAM stack:

required: keeps going (despite success or failure).

sufficient: it stops (disregards what’s below it) when succeeds. It will only be successful if no previous ‘required’ items have failed.

requisite: if this fails, stops and return failure





A pragmatic programmer with a rubber duck.