what is ~/.npm dir for? - macos

I have installed the global npm package jslint and it lives here
$ ls -la /usr/local/bin/jslint
lrwxr-xr-x 1 lust admin 40 Feb 12 15:31 /usr/local/bin/jslint -> ../lib/node_modules/jslint/bin/jslint.js
$ ls -la /usr/local/lib/node_modules/jslint/bin
total 8
drwxr-xr-x 3 lust staff 102 Apr 16 2012 .
drwxr-xr-x 10 lust staff 340 Feb 12 15:31 ..
-rwxr-xr-x 1 lust staff 2330 Apr 16 2012 jslint.js
$ which jslint
/usr/local/bin/jslint
$ head -3 /usr/local/bin/jslint
#!/usr/bin/env node
var linter = require("../lib/linter");
So it is without any doubt whatsoever at this point that jslint is in fact being run from this dir and not here:
$ ls -la .npm/jslint/0.1.9/package/bin/
total 8
drwxr-xr-x 3 lust staff 102 Apr 16 2012 .
drwxr-xr-x 9 lust staff 306 Feb 12 15:31 ..
-rwxr-xr-x 1 lust staff 2330 Apr 16 2012 jslint.js
There appear to be two copies of the package, one in /usr/local/ and one in ~/.npm. Why is there one in .npm and is it safe for me to remove it?

~/.npm is a cache that npm uses to avoid re-downloading the same package multiple times. There's no harm in removing it. You can empty it with the command:
npm cache clean

Related

`go list` prints out non-existing Target

As per golint's README.md:
To find out where golint was installed you can run `go list -f {{.Target}} golang.org/x/lint/golint`.
When I run the command I get:
/Users/Marko/go/bin/golint
But there is no such file:
ls -alF /Users/Marko/go/bin/
total 6432
drwxr-xr-x 3 Marko staff 96 Nov 29 12:32 ./
drwxr-xr-x 4 Marko staff 128 Nov 29 12:05 ../
-rwxr-xr-x 1 Marko staff 3289296 Nov 29 12:32 hello*
How can I find out where is golint?
You need to install it first. Run go get -u golang.org/x/lint/golint. I'm not sure why does go list still list it as a Target, even if it is not installed.

chown: /usr/local: Operation not permitted - issue with brew update /usr/local is not writable - MacOS 10.13.1 high sierra

I am unable to do brew update because I can’t chown /usr/local:
$ brew update
Error: /usr/local is not writable. You should change the ownership
and permissions of /usr/local back to your user account:
sudo chown -R $(whoami) /usr/local
based on this: https://github.com/Homebrew/brew/issues/385
I tried these 2 chown command but it didnt work:
$ sudo chown -R $(whoami) $(brew --prefix)
chown: /usr/local: Operation not permitted
$ sudo chown -R $(whoami) /usr/local
chown: /usr/local: Operation not permitted
Here is my /usr/local listing:
$ cd /usr/local
$ ls -al
total 56
drwxr-xr-x 23 root wheel 736 Dec 2 15:24 .
drwxr-xr-x# 9 root wheel 288 Oct 26 00:22 ..
-rw-r--r-- 1 megasap wheel 0 Dec 2 15:11 .com.apple.installer.keep
drwxr-xr-x 16 megasap admin 512 Jan 11 14:08 .git
drwxr-xr-x 5 megasap admin 160 Dec 2 15:24 .github
-rw-r--r-- 1 megasap admin 1112 Aug 11 2016 .gitignore
-rw-r--r-- 1 megasap admin 253 Aug 11 2016 .travis.yml
-rw-r--r-- 1 megasap admin 291 Aug 11 2016 .yardopts
-rw-r--r-- 1 megasap admin 3161 Aug 11 2016 CODEOFCONDUCT.md
drwxr-xr-x 35 megasap admin 1120 Jan 11 11:35 Cellar
-rw-r--r-- 1 megasap admin 1241 Jan 26 2016 LICENSE.txt
drwxr-xr-x 9 megasap admin 288 Dec 2 15:25 Library
-rw-r--r-- 1 megasap admin 5451 Aug 11 2016 README.md
drwxr-xr-x 262 megasap admin 8384 Jan 11 23:09 bin
drwxr-xr-x 11 megasap admin 352 Dec 2 15:25 etc
drwxr-xr-x 57 megasap staff 1824 Dec 2 15:25 include
drwxr-xr-x 102 megasap staff 3264 Dec 2 15:25 lib
drwx------ 4 megasap wheel 128 Dec 2 15:24 libexec
drwxr-xr-x 3 megasap admin 96 Dec 2 15:23 n
drwxr-xr-x 34 megasap admin 1088 Dec 2 15:25 opt
drwxr-xr-x 8 megasap admin 256 Dec 2 15:24 sbin
drwxr-xr-x 16 megasap admin 512 Dec 2 15:25 share
drwxr-xr-x 8 megasap admin 256 Dec 2 15:25 var
I'm using macOS 10.13.1 high sierra.
Reinstalling Homebrew worked for me
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
You may want to try:
sudo chown -R $(whoami) $(brew --prefix)/*
For more see: https://github.com/Homebrew/brew/issues/3228
Apparently this is due to mac's "system integrity configuration". To get around this you need to reboot your machine into recovery mode (restart your machine and hold down ⌘+R) go into Utilities > Terminal and type the command:
csrutil disable
reboot
And then run your chown command. I guess its recommended to reenable this after changing permissions to re-enable the security.
Full disclosure, I haven't tried this myself - I'll give it a go later today since its a massive PITA. For the record, I'm only attempting to install python3.
Original information
On Mac, I have to give "Full Disk Access" to the terminal using the below page -
https://macreports.com/terminal-says-operation-not-permitted-on-mac-fix/
uninstall and install Homebrew using https://github.com/Homebrew/install

/usr/local/bin doesn't exist when trying to add symlink for SublimeText3

I have been researching this question for 2 hours now and have done everything in all of the answers for creating a symlink for SublimeText3 in macOS Sierra using iTerm2. I have tried all of the following:
input: ln -s /Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl /usr/local/bin/subl
returns: ln: /usr/local/bin/subl: No such file or directory
input: ln -s "/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl" ~/bin/subl
returns: ln: /Users/david/bin/subl: No such file or directory
I have tried creating /usr/local/bin/subl and then executing the above commands but when I use mkdir /usr/local/bin it returns File exists but when I try to run the ln command, I get the same return as examples 1 and 2.
In usr/local it shows: bin remotedesktop but when I try cd bin it returns -bash: cd: bin: No such file or directory and when I look for it in Finder it I get the following error message: The operation can’t be completed because the original item for “bin” can’t be found.
Here is my $PATH: echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
I'm hoping someone can either help me or point in the direction of an answer I missed, because so far none of the answers have worked for me.
When I ran echo b | xxd
this was the result:
00000000: 486f 6d65 6272 6577 2062 696e 206c 6962 Homebrew bin lib
00000010: 2073 6269 6e0a sbin.
Results of running: ls -l /usr/local | cat -vet | pbcopy
total 0$
drwxr-xr-x 2 root wheel 68 Sep 8 22:04 Cellar$
drwxrwxr-x 2 david admin 68 Sep 8 22:04 Frameworks$
drwxr-xr-x 2 root wheel 68 Sep 8 22:04 Homebrew$
drwxrwxr-x 3 david admin 102 Sep 9 00:14 bin$
drwxrwxr-x 2 david admin 68 Sep 8 22:04 etc$
drwxrwxr-x 2 david admin 68 Sep 8 22:04 include$
drwxrwxr-x 2 david admin 68 Sep 8 22:04 lib$
drwxr-xr-x 2 root wheel 68 Sep 8 22:04 opt$
drwxr-xr-x 3 root wheel 102 Jun 12 17:38 remotedesktop$
drwxrwxr-x 2 david admin 68 Sep 8 22:04 sbin$
drwxrwxr-x 3 david admin 102 Sep 8 22:04 share$
drwxrwxr-x 2 david admin 68 Sep 8 22:04 var$

Installing/linking g95 on osx

I found these libraries: http://www.g95.org/downloads.shtml. I downloaded the x86 OSX binaries, unzipped the file, and did ln -s bin/i686-apple-darwin10.3.0-g95 /usr/local/bin/g95, and added chmod +rx permissions to all these files, but I still can't run the g95 executable.
g95-install$ ls -la *
-rwxr-xr-x# 1 kilojoules staff 138126 Jan 17 2013 G95Manual.pdf
-rwxr-xr-x# 1 kilojoules staff 523 Jul 15 22:43 INSTALL
bin:
total 352
drwxr-xr-x# 3 kilojoules staff 102 Jan 17 2013 .
drwxr-xr-x# 6 kilojoules staff 204 Jul 15 22:43 ..
-rwxr-xr-x# 1 kilojoules staff 176968 Jan 17 2013 i686-apple-darwin10.3.0-g95
lib:
total 0
drwxr-xr-x# 3 kilojoules staff 102 Jul 15 22:39 .
drwxr-xr-x# 6 kilojoules staff 204 Jul 15 22:43 ..
drwxr-xr-x# 3 kilojoules staff 102 Jul 15 22:39 gcc-lib
$ ln -s bin/i686-apple-darwin10.3.0-g95 /usr/local/bin/g95
$PATH
-bash: /usr/local/bin:/usr/local/sbin:/Users/kilojoules/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin: No such file or directory
$ g95
-bash: g95: command not found
Why isn't there a brew formula for this?

Successfully delete stringutil.a but it comes back on its own

I'm following "How to Write Go Code" and tries to delete stringutil.a under $GOPATH/pkg/darwin_amd64/github.com/user. The delete is successful but the file comes back on its own. I'm confused. What is happening?
zps-MacBook-Air:haibin haibin$ rm stringutil.a
zps-MacBook-Air:haibin haibin$ ls -lah
total 0
drwxr-xr-x 2 haibin staff 68B Feb 15 00:57 .
drwxr-xr-x 17 haibin staff 578B Feb 15 00:39 ..
zps-MacBook-Air:haibin haibin$ ls -lah
total 8
drwxr-xr-x 3 haibin staff 102B Feb 15 00:57 .
drwxr-xr-x 17 haibin staff 578B Feb 15 00:39 ..
-rw-r--r-- 1 haibin wheel 2.4K Feb 15 00:57 stringutil.a
You need to delete the stringutil.go source file that is under the src tree. The *.a file is a binary file which results from the compilation (and possibly linking) of source files.

Resources