New Mac Setup Guide
I got a new computer (2020-09-04)! I took this as an opportunity to document/organize all the steps required to configure it. This is probably not a post you want to read if you’re not me (but hey, who knows).
Also, about 3/4 of the way through, I found this, which seems like a more polished version of what I’m doing here (although not exactly what I installed, so worse for me, but probably better for you).
Download iTerm2
- I noticed that option-f and option-b don’t go back/forward by 1 word:
- preferences -> profiles -> keys -> left option key -> select Esc+
Problem: default terminal on Mac is zsh (I want bash)
$ chsh -s /bin/bash
Install xcode
- Download from app-store (this takes a while!)
Copy .files from old computer
They’re actually in a git repo, so I used that:
git clone https://github.com/russelldmatt/.files.git .files
ln -s .files/.bash_profile .bash_profile
ln -s .files/.bashrc .bashrc
Still had issues - when I open a new command prompt I get errors such as:
$ bash
bash: dircolors: command not found
bash: opam: command not found
The default interactive shell is now zsh.
To update your account to use zsh, please run `chsh -s /bin/zsh`.
For more details, please visit [https://support.apple.com/kb/HT208050](https://support.apple.com/kb/HT208050).
To fix The default interactive shell is now zsh.
warning, add this to your .bash_profile:
export BASH_SILENCE_DEPRECATION_WARNING=1
To fix the missing discolors, I needed to install GNU core utilities, and to do that…
Homebrew!
$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
Password:
==> This script will install:
/usr/local/bin/brew
/usr/local/share/doc/homebrew
/usr/local/share/man/man1/brew.1
/usr/local/share/zsh/site-functions/_brew
/usr/local/etc/bash_completion.d/brew
/usr/local/Homebrew
==> The following new directories will be created:
/usr/local/bin
/usr/local/etc
/usr/local/include
/usr/local/lib
/usr/local/sbin
/usr/local/share
/usr/local/var
/usr/local/opt
/usr/local/share/zsh
/usr/local/share/zsh/site-functions
/usr/local/var/homebrew
/usr/local/var/homebrew/linked
/usr/local/Cellar
/usr/local/Caskroom
/usr/local/Homebrew
/usr/local/Frameworks
Press RETURN to continue or any other key to abort
Install stuff with homebrew
# coreutils gives me dircolors
brew install coreutils findutils gnu-tar gnu-sed gawk gnutls gnu-indent gnu-getopt grep
brew install tree watch
This installs a bunch of binaries and prefixes some with g
so as to not conflict with the default one installed on the Mac (e.g. ggrep
). In order to default to the GNU binaries with normal names, modify your path in .bash_profile
:
# This is to default to gnu utils installed via homebrew instead of standard mac tools
PATH="/usr/local/opt/coreutils/libexec/gnubin:$PATH"
MANPATH="/usr/local/opt/coreutils/libexec/gnubin:$MANPATH"
PATH="/usr/local/opt/gnu-sed/libexec/gnubin:$PATH"
MANPATH="/usr/local/opt/gnu-sed/libexec/gnuman:$MANPATH"
PATH="/usr/local/opt/gnu-indent/libexec/gnubin:$PATH"
MANPATH="/usr/local/opt/gnu-indent/libexec/gnubin:$MANPATH"
PATH="/usr/local/opt/grep/libexec/gnubin:$PATH"
MANPATH="/usr/local/opt/grep/libexec/gnubin:$MANPATH"
PATH="/usr/local/opt/gnu-tar/libexec/gnubin:$PATH"
MANPATH="/usr/local/opt/gnu-tar/libexec/gnubin:$MANPATH"
Install emacs (with homebrew)
brew cask install emacs
I try to open emacs… and it fails! “Emacs” can’t be opened because Apple cannot check it for malicious software.
. This reddit thread said to right click on the emacs icon (in apps) and click open. That worked… weird!
When I run emacs from terminal, it opens GUI emacs… add this to .bashrc
alias e="emacs -nw"
Configure .emacs
file:
ln -s .files/.emacs.d/init.el .emacs
ln -s .files/.emacs.d .emacs.d
Now when I open, I get a few warnings:
Warning (package): Unnecessary call to ‘package-initialize’ in init file
Warning (initialization): An error occurred while loading ‘/Users/mrussell/.emacs’:
File is missing: Cannot open load file, No such file or directory, ob-sh
To ensure normal operation, you should investigate and remove the
cause of the error in your initialization file. Start Emacs with
the ‘--debug-init’ option to view a complete error backtrace.
To fix Warning (package): Unnecessary call to ‘package-initialize’ in init file
I simply commented the first call to package-initialize
as I had another one right afterwards…
To fix File is missing: Cannot open load file, No such file or directory, ob-sh
I’m following the instructions here. Fixing was really easy, I just needed to find the line in my emacs init file (myinit.org
for me) and change (sh . t)
to (shell . t)
.
org-bullets
not working. It seems I have a git repo (~/.emacs.d/git/org-bullets
) within my git repo (~/.files
) which, by default, will not be included when I clone. So just get that locally:
$ git clone https://github.com/Kaligule/org-bullets.git ~/.files/.emacs.d/git/org-bullets
Cloning into '/Users/mrussell/.files/.emacs.d/git/org-bullets'...
remote: Enumerating objects: 186, done.
remote: Total 186 (delta 0), reused 0 (delta 0), pack-reused 186
Receiving objects: 100% (186/186), 63.83 KiB | 435.00 KiB/s, done.
Resolving deltas: 100% (55/55), done.
Copy code directory from old computer
rsync -a russell@10.0.0.31:~/code .
Code directory (w/out chess games) is 50G so this took a while. Not actually sure how long; I ran it overnight. Seems to have failed about 98% of the way, through. Luckily, rsync
is good for this since it can pick up where it left off, so I re-ran in the morning and it quickly finished.
Keyboard is painfully slow!
- System Preferences -> Keyboard -> max key repeat and delay until repeat
Much better!
iMessages has no names (only #s)
System Preferences -> Apple ID -> iCloud -> enable Contacts
I can’t inspect element in safari
fix is here. Safari Preferences -> Advanced -> check “Show developer menu in menu bar”
Install python
$ which python
/usr/bin/python
$ python --version
Python 2.7.16
$ brew install python
... I think I'm missing some output here ...
==> Downloading https://homebrew.bintray.com/bottles/gdbm-1.18.1_1.catalina.bottle.tar.gz
==> Downloading from https://d29vzk4ow07wi7.cloudfront.net/f7b5ab7363961fa6defcb66b4ffdf5365264fcb97d35bc413e754f173a3b1912?response-content-disposition=attachment%3Bfilename%3D%22gdbm-1.18.1_1.catalina.bot
######################################################################## 100.0%
==> Downloading https://homebrew.bintray.com/bottles/sqlite-3.33.0.catalina.bottle.tar.gz
==> Downloading from https://d29vzk4ow07wi7.cloudfront.net/78566572373e0010a52729c1b41f7503f4e86acc67e7a37bafe091a6ddc36147?response-content-disposition=attachment%3Bfilename%3D%22sqlite-3.33.0.catalina.bot
######################################################################## 100.0%
==> Downloading https://homebrew.bintray.com/bottles/xz-5.2.5.catalina.bottle.tar.gz
==> Downloading from https://d29vzk4ow07wi7.cloudfront.net/2dcc8e0121c934d1e34ffdb37fcd70f0f7b5c2f4755f2f7cbcf360e9e54cb43b?response-content-disposition=attachment%3Bfilename%3D%22xz-5.2.5.catalina.bottle.t
######################################################################## 100.0%
==> Downloading https://homebrew.bintray.com/bottles/python%403.8-3.8.5.catalina.bottle.tar.gz
==> Downloading from https://d29vzk4ow07wi7.cloudfront.net/3f0592dfdf6bf38c25870b57ba3e71b5b47e6c5a5ddb76aaafcbffe67eff8354?response-content-disposition=attachment%3Bfilename%3D%22python%403.8-3.8.5.catalin
######################################################################## 100.0%
==> Installing dependencies for python@3.8: gdbm, sqlite and xz
==> Installing python@3.8 dependency: gdbm
==> Pouring gdbm-1.18.1_1.catalina.bottle.tar.gz
🍺 /usr/local/Cellar/gdbm/1.18.1_1: 25 files, 641KB
==> Installing python@3.8 dependency: sqlite
==> Pouring sqlite-3.33.0.catalina.bottle.tar.gz
==> Caveats
sqlite is keg-only, which means it was not symlinked into /usr/local,
because macOS already provides this software and installing another version in
parallel can cause all kinds of trouble.
If you need to have sqlite first in your PATH run:
echo 'export PATH="/usr/local/opt/sqlite/bin:$PATH"' >> /Users/mrussell/.bash_profile
For compilers to find sqlite you may need to set:
export LDFLAGS="-L/usr/local/opt/sqlite/lib"
export CPPFLAGS="-I/usr/local/opt/sqlite/include"
For pkg-config to find sqlite you may need to set:
export PKG_CONFIG_PATH="/usr/local/opt/sqlite/lib/pkgconfig"
==> Summary
🍺 /usr/local/Cellar/sqlite/3.33.0: 11 files, 4MB
==> Installing python@3.8 dependency: xz
==> Pouring xz-5.2.5.catalina.bottle.tar.gz
🍺 /usr/local/Cellar/xz/5.2.5: 92 files, 1.1MB
==> Installing python@3.8
==> Pouring python@3.8-3.8.5.catalina.bottle.tar.gz
==> /usr/local/Cellar/python@3.8/3.8.5/bin/python3 -s setup.py --no-user-cfg install --force --verbose --install-scripts=/usr/local/Cellar/python@3.8/3.8.5/bin --install-lib=/usr/local/lib/python3.8/site-pa
==> /usr/local/Cellar/python@3.8/3.8.5/bin/python3 -s setup.py --no-user-cfg install --force --verbose --install-scripts=/usr/local/Cellar/python@3.8/3.8.5/bin --install-lib=/usr/local/lib/python3.8/site-pa
==> /usr/local/Cellar/python@3.8/3.8.5/bin/python3 -s setup.py --no-user-cfg install --force --verbose --install-scripts=/usr/local/Cellar/python@3.8/3.8.5/bin --install-lib=/usr/local/lib/python3.8/site-pa
==> Caveats
Python has been installed as
/usr/local/bin/python3
Unversioned symlinks `python`, `python-config`, `pip` etc. pointing to
`python3`, `python3-config`, `pip3` etc., respectively, have been installed into
/usr/local/opt/python@3.8/libexec/bin
You can install Python packages with
pip3 install <package>
They will install into the site-package directory
/usr/local/lib/python3.8/site-packages
See: https://docs.brew.sh/Homebrew-and-Python
==> Summary
🍺 /usr/local/Cellar/python@3.8/3.8.5: 4,331 files, 67MB
==> Caveats
==> sqlite
sqlite is keg-only, which means it was not symlinked into /usr/local,
because macOS already provides this software and installing another version in
parallel can cause all kinds of trouble.
If you need to have sqlite first in your PATH run:
echo 'export PATH="/usr/local/opt/sqlite/bin:$PATH"' >> /Users/mrussell/.bash_profile
For compilers to find sqlite you may need to set:
export LDFLAGS="-L/usr/local/opt/sqlite/lib"
export CPPFLAGS="-I/usr/local/opt/sqlite/include"
For pkg-config to find sqlite you may need to set:
export PKG_CONFIG_PATH="/usr/local/opt/sqlite/lib/pkgconfig"
==> python@3.8
Python has been installed as
/usr/local/bin/python3
Unversioned symlinks `python`, `python-config`, `pip` etc. pointing to
`python3`, `python3-config`, `pip3` etc., respectively, have been installed into
/usr/local/opt/python@3.8/libexec/bin
You can install Python packages with
pip3 install <package>
They will install into the site-package directory
/usr/local/lib/python3.8/site-packages
See: https://docs.brew.sh/Homebrew-and-Python
Notice the caveat above, I’d like unversioned names such as python
and pip
to point to the homebrew-installed python3 and not the (old) Mac python. In order to do that, add the following to my .bashrc
:
# adding this to the front of my path allows unversioned names
# (`python`, `pip`, etc.) to point to the 3.8 homebrew-installed
# version instead of the (old) one that comes with the mac
export PATH=/usr/local/opt/python@3.8/libexec/bin:$PATH
Check that it worked:
$ which python
/usr/local/opt/python@3.8/libexec/bin/python
$ python --version
Python 3.8.5
$ which pip
/usr/local/opt/python@3.8/libexec/bin/pip
Install stuff that I know I’ll want:
$ pip install numpy scipy matplotlib pandas seaborn sympy
$ pip install ipython
$ ll $(which ipython)
-rwxr-xr-x 1 mrussell admin 247 Sep 6 07:28 /usr/local/bin/ipython
Huh… kind of confused that it’s in /usr/local/bin
(vs. a symlink in /usr/local/opt/python@3.8/libexec/bin/python
), but oh well.
Install jupyter:
$ pip install jupyter
$ pip install black
More stuff (later):
$ pip install yattag # for make-cal
Install node & npm
Download 12.18.3 LTS here: https://nodejs.org/en/
This package will install: • Node.js v12.18.3 to /usr/local/bin/node • npm v6.14.6 to /usr/local/bin/npm
Wow, that was shockingly easy. After doing that, the anniversary website just works.
Install Jekyll
Following instructions here.
$ brew install ruby
Updating Homebrew...
==> Auto-updated Homebrew!
Updated 1 tap (homebrew/cask).
No changes to formulae.
==> Downloading https://homebrew.bintray.com/bottles/libyaml-0.2.5.catalina.bottle.tar.gz
######################################################################## 100.0%
==> Downloading https://homebrew.bintray.com/bottles/ruby-2.7.1_2.catalina.bottle.tar.gz
==> Downloading from https://d29vzk4ow07wi7.cloudfront.net/c9ee36823a8dfe2686c6d7a3faf5061a032ed0b8e08d484f3ff2cda72d210a08?response-content-dispositio
######################################################################## 100.0%
==> Installing dependencies for ruby: libyaml
==> Installing ruby dependency: libyaml
==> Pouring libyaml-0.2.5.catalina.bottle.tar.gz
🍺 /usr/local/Cellar/libyaml/0.2.5: 10 files, 323.5KB
==> Installing ruby
==> Pouring ruby-2.7.1_2.catalina.bottle.tar.gz
==> Caveats
By default, binaries installed by gem will be placed into:
/usr/local/lib/ruby/gems/2.7.0/bin
You may want to add this to your PATH.
ruby is keg-only, which means it was not symlinked into /usr/local,
because macOS already provides this software and installing another version in
parallel can cause all kinds of trouble.
If you need to have ruby first in your PATH run:
echo 'export PATH="/usr/local/opt/ruby/bin:$PATH"' >> /Users/mrussell/.bash_profile
For compilers to find ruby you may need to set:
export LDFLAGS="-L/usr/local/opt/ruby/lib"
export CPPFLAGS="-I/usr/local/opt/ruby/include"
For pkg-config to find ruby you may need to set:
export PKG_CONFIG_PATH="/usr/local/opt/ruby/lib/pkgconfig"
==> Summary
🍺 /usr/local/Cellar/ruby/2.7.1_2: 20,142 files, 32.2MB
==> Caveats
==> ruby
By default, binaries installed by gem will be placed into:
/usr/local/lib/ruby/gems/2.7.0/bin
You may want to add this to your PATH.
ruby is keg-only, which means it was not symlinked into /usr/local,
because macOS already provides this software and installing another version in
parallel can cause all kinds of trouble.
If you need to have ruby first in your PATH run:
echo 'export PATH="/usr/local/opt/ruby/bin:$PATH"' >> /Users/mrussell/.bash_profile
For compilers to find ruby you may need to set:
export LDFLAGS="-L/usr/local/opt/ruby/lib"
export CPPFLAGS="-I/usr/local/opt/ruby/include"
For pkg-config to find ruby you may need to set:
export PKG_CONFIG_PATH="/usr/local/opt/ruby/lib/pkgconfig"
Add the following to my .bashrc
:
# ruby (for jekyll)
export PATH="/usr/local/opt/ruby/bin:$PATH"
export PATH="/usr/local/lib/ruby/gems/2.7.0/bin:$PATH"
Verify:
$ which ruby
/usr/local/opt/ruby/bin/ruby
$ ruby -v
ruby 2.7.1p83 (2020-03-31 revision a0c7c23c9c) [x86_64-darwin19]
Install the bundler and Jekyll gems:
$ gem install --user-install bundler jekyll
Add one more line to my .bashrc
:
export PATH="$HOME/.gem/ruby/2.7.0/bin:$PATH"
Warning from the Jekyll install website:
Every time you update Ruby to a version in which the first two digits change, update your path to match.
Check that it worked:
jekyll serve
within my brainteasers repo worked!jekyll serve
within blog failed:
$ jekyll serve
The dependency tzinfo-data (>= 0) will be unused by any of the platforms Bundler is installing for. Bundler is installing for ruby but the dependency is only for x86-mingw32, x86-mswin32, x64-mingw32, java. To add those platforms to the bundle, run `bundle lock --add-platform x86-mingw32 x86-mswin32 x64-mingw32 java`.
Traceback (most recent call last):
12: from /Users/mrussell/.gem/ruby/2.7.0/bin/jekyll:23:in `<main>'
11: from /Users/mrussell/.gem/ruby/2.7.0/bin/jekyll:23:in `load'
10: from /Users/mrussell/.gem/ruby/2.7.0/gems/jekyll-4.1.1/exe/jekyll:11:in `<top (required)>'
9: from /Users/mrussell/.gem/ruby/2.7.0/gems/jekyll-4.1.1/lib/jekyll/plugin_manager.rb:52:in `require_from_bundler'
8: from /Users/mrussell/.gem/ruby/2.7.0/gems/bundler-2.1.4/lib/bundler.rb:149:in `setup'
7: from /Users/mrussell/.gem/ruby/2.7.0/gems/bundler-2.1.4/lib/bundler/runtime.rb:20:in `setup'
6: from /Users/mrussell/.gem/ruby/2.7.0/gems/bundler-2.1.4/lib/bundler/runtime.rb:101:in `block in definition_method'
5: from /Users/mrussell/.gem/ruby/2.7.0/gems/bundler-2.1.4/lib/bundler/definition.rb:226:in `requested_specs'
4: from /Users/mrussell/.gem/ruby/2.7.0/gems/bundler-2.1.4/lib/bundler/definition.rb:237:in `specs_for'
3: from /Users/mrussell/.gem/ruby/2.7.0/gems/bundler-2.1.4/lib/bundler/definition.rb:170:in `specs'
2: from /Users/mrussell/.gem/ruby/2.7.0/gems/bundler-2.1.4/lib/bundler/spec_set.rb:80:in `materialize'
1: from /Users/mrussell/.gem/ruby/2.7.0/gems/bundler-2.1.4/lib/bundler/spec_set.rb:80:in `map!'
/Users/mrussell/.gem/ruby/2.7.0/gems/bundler-2.1.4/lib/bundler/spec_set.rb:86:in `block in materialize': Could not find concurrent-ruby-1.1.5 in any of the sources (Bundler::GemNotFound)
EXIT STATUS: 1
I have some vague memory that I need to run bundle exec jekyll serve
for my blog, as opposed to just jekyll serve
. What’s the difference?
$ bundle exec jekyll serve
Could not find concurrent-ruby-1.1.5 in any of the sources
Run `bundle install` to install missing gems.
EXIT STATUS: 7
$ bundle install
The dependency tzinfo-data (>= 0) will be unused by any of the platforms Bundler is installing for. Bundler is installing for ruby but the dependency is only for x86-mingw32, x86-mswin32, x64-mingw32, java. To add those platforms to the bundle, run `bundle lock --add-platform x86-mingw32 x86-mswin32 x64-mingw32 java`.
Fetching gem metadata from https://rubygems.org/.........
Fetching concurrent-ruby 1.1.5
Installing concurrent-ruby 1.1.5
Fetching i18n 0.9.5
Installing i18n 0.9.5
Fetching minitest 5.11.3
Installing minitest 5.11.3
Fetching thread_safe 0.3.6
Installing thread_safe 0.3.6
Fetching tzinfo 1.2.5
Installing tzinfo 1.2.5
Fetching activesupport 4.2.11.1
Installing activesupport 4.2.11.1
Fetching public_suffix 3.1.1
Installing public_suffix 3.1.1
Using addressable 2.7.0
Using bundler 2.1.4
Fetching coffee-script-source 1.11.1
Installing coffee-script-source 1.11.1
Fetching execjs 2.7.0
Installing execjs 2.7.0
Fetching coffee-script 2.4.1
Installing coffee-script 2.4.1
Using colorator 1.1.0
Fetching ruby-enum 0.7.2
Installing ruby-enum 0.7.2
Fetching commonmarker 0.17.13
Installing commonmarker 0.17.13 with native extensions
Fetching dnsruby 1.61.3
Installing dnsruby 1.61.3
Using eventmachine 1.2.7
Using http_parser.rb 0.6.0
Using em-websocket 0.5.1
Fetching ffi 1.11.1
Installing ffi 1.11.1 with native extensions
Fetching ethon 0.12.0
Installing ethon 0.12.0
Fetching multipart-post 2.1.1
Installing multipart-post 2.1.1
Fetching faraday 0.15.4
Installing faraday 0.15.4
Using forwardable-extended 2.6.0
Fetching gemoji 3.0.1
Installing gemoji 3.0.1
Fetching sawyer 0.8.2
Installing sawyer 0.8.2
Fetching octokit 4.14.0
Installing octokit 4.14.0
Fetching typhoeus 1.3.1
Installing typhoeus 1.3.1
Fetching github-pages-health-check 1.16.1
Installing github-pages-health-check 1.16.1
Fetching rb-fsevent 0.10.3
Installing rb-fsevent 0.10.3
Fetching rb-inotify 0.10.0
Installing rb-inotify 0.10.0
Fetching sass-listen 4.0.0
Installing sass-listen 4.0.0
Fetching sass 3.7.4
Installing sass 3.7.4
Fetching jekyll-sass-converter 1.5.2
Installing jekyll-sass-converter 1.5.2
Fetching ruby_dep 1.5.0
Installing ruby_dep 1.5.0
Fetching listen 3.1.5
Installing listen 3.1.5
Using jekyll-watch 2.2.1
Fetching kramdown 1.17.0
Installing kramdown 1.17.0
Fetching liquid 4.0.0
Installing liquid 4.0.0
Fetching mercenary 0.3.6
Installing mercenary 0.3.6
Using pathutil 0.16.2
Fetching rouge 2.2.1
Installing rouge 2.2.1
Using safe_yaml 1.0.5
Fetching jekyll 3.8.5
Installing jekyll 3.8.5
Fetching jekyll-avatar 0.6.0
Installing jekyll-avatar 0.6.0
Fetching jekyll-coffeescript 1.1.1
Installing jekyll-coffeescript 1.1.1
Fetching jekyll-commonmark 1.3.1
Installing jekyll-commonmark 1.3.1
Fetching jekyll-commonmark-ghpages 0.1.5
Installing jekyll-commonmark-ghpages 0.1.5
Fetching jekyll-default-layout 0.1.4
Installing jekyll-default-layout 0.1.4
Fetching jekyll-feed 0.11.0
Installing jekyll-feed 0.11.0
Fetching jekyll-gist 1.5.0
Installing jekyll-gist 1.5.0
Fetching jekyll-github-metadata 2.12.1
Installing jekyll-github-metadata 2.12.1
Fetching mini_portile2 2.4.0
Installing mini_portile2 2.4.0
Fetching nokogiri 1.10.4
Installing nokogiri 1.10.4 with native extensions
Fetching html-pipeline 2.12.0
Installing html-pipeline 2.12.0
Fetching jekyll-mentions 1.4.1
Installing jekyll-mentions 1.4.1
Fetching jekyll-optional-front-matter 0.3.0
Installing jekyll-optional-front-matter 0.3.0
Fetching jekyll-paginate 1.1.0
Installing jekyll-paginate 1.1.0
Fetching jekyll-readme-index 0.2.0
Installing jekyll-readme-index 0.2.0
Fetching jekyll-redirect-from 0.14.0
Installing jekyll-redirect-from 0.14.0
Fetching jekyll-relative-links 0.6.0
Installing jekyll-relative-links 0.6.0
Fetching rubyzip 1.2.4
Installing rubyzip 1.2.4
Fetching jekyll-remote-theme 0.4.0
Installing jekyll-remote-theme 0.4.0
Fetching jekyll-seo-tag 2.5.0
Installing jekyll-seo-tag 2.5.0
Fetching jekyll-sitemap 1.2.0
Installing jekyll-sitemap 1.2.0
Fetching jekyll-swiss 0.4.0
Installing jekyll-swiss 0.4.0
Fetching jekyll-theme-architect 0.1.1
Installing jekyll-theme-architect 0.1.1
Fetching jekyll-theme-cayman 0.1.1
Installing jekyll-theme-cayman 0.1.1
Fetching jekyll-theme-dinky 0.1.1
Installing jekyll-theme-dinky 0.1.1
Fetching jekyll-theme-hacker 0.1.1
Installing jekyll-theme-hacker 0.1.1
Fetching jekyll-theme-leap-day 0.1.1
Installing jekyll-theme-leap-day 0.1.1
Fetching jekyll-theme-merlot 0.1.1
Installing jekyll-theme-merlot 0.1.1
Fetching jekyll-theme-midnight 0.1.1
Installing jekyll-theme-midnight 0.1.1
Fetching jekyll-theme-minimal 0.1.1
Installing jekyll-theme-minimal 0.1.1
Fetching jekyll-theme-modernist 0.1.1
Installing jekyll-theme-modernist 0.1.1
Fetching jekyll-theme-primer 0.5.3
Installing jekyll-theme-primer 0.5.3
Fetching jekyll-theme-slate 0.1.1
Installing jekyll-theme-slate 0.1.1
Fetching jekyll-theme-tactile 0.1.1
Installing jekyll-theme-tactile 0.1.1
Fetching jekyll-theme-time-machine 0.1.1
Installing jekyll-theme-time-machine 0.1.1
Fetching jekyll-titles-from-headings 0.5.1
Installing jekyll-titles-from-headings 0.5.1
Fetching jemoji 0.10.2
Installing jemoji 0.10.2
Fetching minima 2.5.0
Installing minima 2.5.0
Fetching unicode-display_width 1.6.0
Installing unicode-display_width 1.6.0
Using terminal-table 1.8.0
Fetching github-pages 200
Installing github-pages 200
Fetching octicons 9.1.1
Installing octicons 9.1.1
Fetching jekyll-octicons 9.1.1
Installing jekyll-octicons 9.1.1
Bundle complete! 5 Gemfile dependencies, 87 gems now installed.
Use `bundle info [gemname]` to see where a bundled gem is installed.
Post-install message from dnsruby:
Installing dnsruby...
For issues and source code: https://github.com/alexdalitz/dnsruby
For general discussion (please tell us how you use dnsruby): https://groups.google.com/forum/#!forum/dnsruby
Post-install message from sass:
Ruby Sass has reached end-of-life and should no longer be used.
* If you use Sass as a command-line tool, we recommend using Dart Sass, the new
primary implementation: https://sass-lang.com/install
* If you use Sass as a plug-in for a Ruby web framework, we recommend using the
sassc gem: https://github.com/sass/sassc-ruby#readme
* For more details, please refer to the Sass blog:
https://sass-lang.com/blog/posts/7828841
Post-install message from html-pipeline:
-------------------------------------------------
Thank you for installing html-pipeline!
You must bundle Filter gem dependencies.
See html-pipeline README.md for more details.
https://github.com/jch/html-pipeline#dependencies
-------------------------------------------------
$ bundle exec jekyll serve
... lots of warnings...
Auto-regeneration: enabled for '/Users/mrussell/code/blog'
Server address: http://127.0.0.1:4000/
Server running... press ctrl-c to stop.
I get a ton of “deprecated” warnings when I run bundle exec jekyll serve
. I think it’s because my ruby version is 2.7? I tried following instructions here, although it’s not very clear what to do. People post conflicting statements about “what worked for them”. Here’s what I tried:
$ bundle update github-pages
... lots of messages
That seemed to upgrade my GitHub-pages
gem from 200 -> 207:
$ rg -m1 github Gemfile.lock # before
33: github-pages (200)
$ rg -m1 github Gemfile.lock # after
34: github-pages (207)
And it worked! No warnings:
$ bundle exec jekyll serve
Configuration file: /Users/mrussell/code/blog/_config.yml
Source: /Users/mrussell/code/blog
Destination: /Users/mrussell/code/blog/_site
Incremental build: disabled. Enable with --incremental
Generating...
Jekyll Feed: Generating feed for posts
done in 1.088 seconds.
Auto-regeneration: enabled for '/Users/mrussell/code/blog'
Server address: http://127.0.0.1:4000/
Server running... press ctrl-c to stop.
Copy chess games (150G) from old computer
$ rsync --progress -a russell@10.0.0.31:~/chess-games .
Install rust
$ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
info: downloading installer
Welcome to Rust!
This will download and install the official compiler for the Rust
programming language, and its package manager, Cargo.
Rustup metadata and toolchains will be installed into the Rustup
home directory, located at:
/Users/mrussell/.rustup
This can be modified with the RUSTUP_HOME environment variable.
The Cargo home directory located at:
/Users/mrussell/.cargo
This can be modified with the CARGO_HOME environment variable.
The cargo, rustc, rustup and other commands will be added to
Cargo's bin directory, located at:
/Users/mrussell/.cargo/bin
This path will then be added to your PATH environment variable by
modifying the profile files located at:
/Users/mrussell/.profile
/Users/mrussell/.bash_profile
You can uninstall at any time with rustup self uninstall and
these changes will be reverted.
Current installation options:
default host triple: x86_64-apple-darwin
default toolchain: stable (default)
profile: default
modify PATH variable: yes
1) Proceed with installation (default)
2) Customize installation
3) Cancel installation
>1
info: profile set to 'default'
info: default host triple is x86_64-apple-darwin
info: syncing channel updates for 'stable-x86_64-apple-darwin'
info: latest update on 2020-08-27, rust version 1.46.0 (04488afe3 2020-08-24)
info: downloading component 'cargo'
info: downloading component 'clippy'
info: downloading component 'rust-docs'
12.6 MiB / 12.6 MiB (100 %) 11.9 MiB/s in 1s ETA: 0s
info: downloading component 'rust-std'
14.7 MiB / 14.7 MiB (100 %) 12.0 MiB/s in 1s ETA: 0s
info: downloading component 'rustc'
47.0 MiB / 47.0 MiB (100 %) 11.1 MiB/s in 4s ETA: 0s
info: downloading component 'rustfmt'
info: installing component 'cargo'
info: Defaulting to 500.0 MiB unpack ram
info: installing component 'clippy'
info: installing component 'rust-docs'
12.6 MiB / 12.6 MiB (100 %) 11.1 MiB/s in 1s ETA: 0s
info: installing component 'rust-std'
info: installing component 'rustc'
47.0 MiB / 47.0 MiB (100 %) 15.2 MiB/s in 3s ETA: 0s
info: installing component 'rustfmt'
info: default toolchain set to 'stable'
stable installed - rustc 1.46.0 (04488afe3 2020-08-24)
Rust is installed now. Great!
To get started you need Cargo's bin directory ($HOME/.cargo/bin) in your PATH
environment variable. Next time you log in this will be done
automatically.
To configure your current shell run source $HOME/.cargo/env
And then I moved this from .bash_profile
to .bashrc
:
# rust
export PATH="$HOME/.cargo/bin:$PATH"
Install rg
$ cargo install ripgrep
Updating crates.io index
Downloaded ripgrep v12.1.1
Downloaded 1 crate (256.5 KB) in 0.71s
Installing ripgrep v12.1.1
Downloaded bytecount v0.6.0
Downloaded bstr v0.2.13
Downloaded grep-searcher v0.1.7
Downloaded ignore v0.4.16
Downloaded globset v0.4.5
Downloaded grep-regex v0.1.8
Downloaded grep-cli v0.1.5
Downloaded bitflags v1.2.1
Downloaded base64 v0.12.3
Downloaded atty v0.2.14
Downloaded aho-corasick v0.7.13
Downloaded encoding_rs_io v0.1.7
Downloaded grep-matcher v0.1.4
Downloaded grep-printer v0.1.5
Downloaded memchr v2.3.3
Downloaded log v0.4.11
Downloaded grep v0.2.7
Downloaded encoding_rs v0.8.24
Downloaded serde_derive v1.0.115
Downloaded lazy_static v1.4.0
Downloaded proc-macro2 v1.0.20
Downloaded num_cpus v1.13.0
Downloaded serde v1.0.115
Downloaded walkdir v2.3.1
Downloaded regex v1.3.9
Downloaded strsim v0.8.0
Downloaded ryu v1.0.5
Downloaded regex-syntax v0.6.18
Downloaded textwrap v0.11.0
Downloaded unicode-width v0.1.8
Downloaded libc v0.2.76
Downloaded termcolor v1.1.0
Downloaded fnv v1.0.7
Downloaded cfg-if v0.1.10
Downloaded regex-automata v0.1.9
Downloaded quote v1.0.7
Downloaded itoa v0.4.6
Downloaded byteorder v1.3.4
Downloaded unicode-xid v0.2.1
Downloaded thread_local v1.0.1
Downloaded syn v1.0.40
Downloaded memmap v0.7.0
Downloaded serde_json v1.0.57
Downloaded same-file v1.0.6
Downloaded crossbeam-utils v0.7.2
Downloaded clap v2.33.3
Downloaded autocfg v1.0.1
Downloaded 47 crates (4.4 MB) in 0.81s (largest was `encoding_rs` at 1.4 MB)
Compiling lazy_static v1.4.0
Compiling memchr v2.3.3
Compiling byteorder v1.3.4
Compiling cfg-if v0.1.10
Compiling libc v0.2.76
Compiling log v0.4.11
Compiling proc-macro2 v1.0.20
Compiling encoding_rs v0.8.24
Compiling unicode-xid v0.2.1
Compiling regex-syntax v0.6.18
Compiling syn v1.0.40
Compiling bitflags v1.2.1
Compiling serde v1.0.115
Compiling ryu v1.0.5
Compiling serde_json v1.0.57
Compiling same-file v1.0.6
Compiling autocfg v1.0.1
Compiling fnv v1.0.7
Compiling serde_derive v1.0.115
Compiling unicode-width v0.1.8
Compiling itoa v0.4.6
Compiling termcolor v1.1.0
Compiling bytecount v0.6.0
Compiling strsim v0.8.0
Compiling base64 v0.12.3
Compiling thread_local v1.0.1
Compiling walkdir v2.3.1
Compiling textwrap v0.11.0
Compiling aho-corasick v0.7.13
Compiling grep-matcher v0.1.4
Compiling clap v2.33.3
Compiling quote v1.0.7
Compiling crossbeam-utils v0.7.2
Compiling regex-automata v0.1.9
Compiling bstr v0.2.13
Compiling memmap v0.7.0
Compiling atty v0.2.14
Compiling num_cpus v1.13.0
Compiling regex v1.3.9
Compiling encoding_rs_io v0.1.7
Compiling grep-searcher v0.1.7
Compiling globset v0.4.5
Compiling grep-regex v0.1.8
Compiling grep-cli v0.1.5
Compiling ignore v0.4.16
Compiling ripgrep v12.1.1
Compiling grep-printer v0.1.5
Compiling grep v0.2.7
Finished release [optimized + debuginfo] target(s) in 1m 02s
Installing /Users/mrussell/.cargo/bin/rg
Installed package `ripgrep v12.1.1` (executable `rg`)
$ which rg
/Users/mrussell/.cargo/bin/rg
Git stuff
$ scp russell@10.0.0.31:~/.gitconfig .gitconfig
Made a global .gitignore
file, following instructions here:
$ cat .gitignore
# Folder view configuration files
.DS_Store
Desktop.ini
# Thumbnail cache files
._*
Thumbs.db
# Files that might appear on external disks
.Spotlight-V100
.Trashes
# Compiled Python files
*.pyc
# Compiled C++ files
*.out
# Application specific files
venv
node_modules
.sass-cache~:
$ git config --global core.excludesfile ~/.gitignore
Bash completion
I noticed when using git
that it didn’t autocomplete, e.g. if I type git com<TAB>
it doesn’t become git commit
.
$ brew install bash-completion
Updating Homebrew...
==> Auto-updated Homebrew!
Updated 2 taps (homebrew/core and homebrew/cask).
==> Updated Formulae
Updated 13 formulae.
==> New Casks
cisco-jabber klogg
==> Updated Casks
busycontacts clashx fork keepingyouawake mkvtoolnix vorta webcatalog yacreader
==> Downloading https://homebrew.bintray.com/bottles/bash-completion-1.3_3.catalina.bottle.tar.gz
######################################################################## 100.0%
==> Pouring bash-completion-1.3_3.catalina.bottle.tar.gz
==> Caveats
Add the following line to your ~/.bash_profile:
[[ -r "/usr/local/etc/profile.d/bash_completion.sh" ]] && . "/usr/local/etc/profile.d/bash_completion.sh"
Bash completion has been installed to:
/usr/local/etc/bash_completion.d
==> Summary
🍺 /usr/local/Cellar/bash-completion/1.3_3: 189 files, 607.9KB
Then I added the suggested line to my .bash_profile
:
[[ -r /usr/local/etc/profile.d/bash_completion.sh ]] && . /usr/local/etc/profile.d/bash_completion.sh
NOT WORKING!!
$ brew uninstall bash-completion
Uninstalling /usr/local/Cellar/bash-completion/1.3_3... (189 files, 607.9KB)
$ brew install bash-completion@2
Updating Homebrew...
==> Auto-updated Homebrew!
Updated 2 taps (homebrew/core and homebrew/cask).
==> Updated Formulae
Updated 5 formulae.
==> Updated Casks
feishu middle qownnotes rubitrack-pro stats
==> Downloading https://homebrew.bintray.com/bottles/bash-5.0.18.catalina.bottle.tar.gz
==> Downloading from https://d29vzk4ow07wi7.cloudfront.net/c6e7b7a521a1cfb21f2872bde253bfd40150bd4ba36ada62c05fcdb73ae094c6?response-content-disposition=attachment%3Bfilename%3D%22bash-5.0.18.catalina.bottle.tar.
######################################################################## 100.0%
==> Downloading https://homebrew.bintray.com/bottles/bash-completion%402-2.11.catalina.bottle.tar.gz
==> Downloading from https://d29vzk4ow07wi7.cloudfront.net/3fe7e4021769be9a92eac055496e6189996c3527270db1dfdd4b0eb8cd7b4192?response-content-disposition=attachment%3Bfilename%3D%22bash-completion%402-2.11.catalin
######################################################################## 100.0%
==> Installing dependencies for bash-completion@2: bash
==> Installing bash-completion@2 dependency: bash
==> Pouring bash-5.0.18.catalina.bottle.tar.gz
🍺 /usr/local/Cellar/bash/5.0.18: 150 files, 9.5MB
==> Installing bash-completion@2
==> Pouring bash-completion@2-2.11.catalina.bottle.tar.gz
==> Caveats
Add the following line to your ~/.bash_profile:
[[ -r "/usr/local/etc/profile.d/bash_completion.sh" ]] && . "/usr/local/etc/profile.d/bash_completion.sh"
==> Summary
🍺 /usr/local/Cellar/bash-completion@2/2.11: 753 files, 1MB
==> Caveats
==> bash-completion@2
Add the following line to your ~/.bash_profile:
[[ -r "/usr/local/etc/profile.d/bash_completion.sh" ]] && . "/usr/local/etc/profile.d/bash_completion.sh"
STILL NOT WORKING!!
$ brew uninstall bash-completion@2
Start over… this time install git
with homebrew
$ brew install git bash-completion
Updating Homebrew...
==> Auto-updated Homebrew!
Updated 2 taps (homebrew/core and homebrew/cask).
==> New Formulae
croc
==> Updated Formulae
Updated 18 formulae.
==> New Casks
naver-whale silnite twilioquest
==> Updated Casks
aerial cool-retro-term icollections navicat-for-mariadb ultimaker-cura
alt-tab couchbase-server-community lark navicat-for-oracle vellum
anzeigenchef datovka lingon-x navicat-for-sql-server yandex-disk
browserosaurus fanny maciasl openmsx
c0re100-qbittorrent freesmug-chromium marshallofsound-google-play-music-player prudent
cmake github multibit-hd telegram
==> Downloading https://homebrew.bintray.com/bottles/pcre2-10.35.catalina.bottle.tar.gz
==> Downloading from https://d29vzk4ow07wi7.cloudfront.net/6a1e59a5db23d684f92d2bf695601d1b466f3e9d5407f704ba4679d885d13cef?response-content-disposition=attachment%3Bfilename%3D%22pcre2-10.35.catalina.bottle.tar.
######################################################################## 100.0%
==> Downloading https://homebrew.bintray.com/bottles/git-2.28.0.catalina.bottle.tar.gz
==> Downloading from https://d29vzk4ow07wi7.cloudfront.net/6c4d10f29f78dcbefa12fab3e47e7755d5d2ca2e9bbc5aeee4838ad223296d0a?response-content-disposition=attachment%3Bfilename%3D%22git-2.28.0.catalina.bottle.tar.g
######################################################################## 100.0%
==> Installing dependencies for git: pcre2
==> Installing git dependency: pcre2
==> Pouring pcre2-10.35.catalina.bottle.tar.gz
🍺 /usr/local/Cellar/pcre2/10.35: 230 files, 6.0MB
==> Installing git
==> Pouring git-2.28.0.catalina.bottle.tar.gz
==> Caveats
The Tcl/Tk GUIs (e.g. gitk, git-gui) are now in the `git-gui` formula.
Bash completion has been installed to:
/usr/local/etc/bash_completion.d
zsh completions and functions have been installed to:
/usr/local/share/zsh/site-functions
Emacs Lisp files have been installed to:
/usr/local/share/emacs/site-lisp/git
==> Summary
🍺 /usr/local/Cellar/git/2.28.0: 1,482 files, 48.9MB
==> Downloading https://homebrew.bintray.com/bottles/bash-completion-1.3_3.catalina.bottle.tar.gz
Already downloaded: /Users/mrussell/Library/Caches/Homebrew/downloads/21be184d6ca40d06076f8150eb737bf9e3213ffaeecce6c91c096f06014e7218--bash-completion-1.3_3.catalina.bottle.tar.gz
==> Pouring bash-completion-1.3_3.catalina.bottle.tar.gz
==> Caveats
Add the following line to your ~/.bash_profile:
[[ -r "/usr/local/etc/profile.d/bash_completion.sh" ]] && . "/usr/local/etc/profile.d/bash_completion.sh"
Bash completion has been installed to:
/usr/local/etc/bash_completion.d
==> Summary
🍺 /usr/local/Cellar/bash-completion/1.3_3: 189 files, 607.9KB
==> Caveats
==> git
The Tcl/Tk GUIs (e.g. gitk, git-gui) are now in the `git-gui` formula.
Bash completion has been installed to:
/usr/local/etc/bash_completion.d
zsh completions and functions have been installed to:
/usr/local/share/zsh/site-functions
Emacs Lisp files have been installed to:
/usr/local/share/emacs/site-lisp/git
==> bash-completion
Add the following line to your ~/.bash_profile:
[[ -r "/usr/local/etc/profile.d/bash_completion.sh" ]] && . "/usr/local/etc/profile.d/bash_completion.sh"
Bash completion has been installed to:
/usr/local/etc/bash_completion.d
Ok… it works. I think I might be super dumb. It looks like git
bash completion only works when you’re in a git repo (pretty reasonable…) and I kept testing from my home directory.
Install Chrome
Normal - just download and open the installed.
LaTeX
$ brew cask install basictex
Updating Homebrew...
==> Auto-updated Homebrew!
Updated 2 taps (homebrew/core and homebrew/cask).
==> Updated Formulae
Updated 10 formulae.
==> Updated Casks
115browser dbeaver-enterprise get-iplayer-automator nosqlbooster-for-mongodb tempo
balenaetcher dbschema hbuilderx obsidian thedesk
biscuit file-juicer josm openrefine vivaldi
c0re100-qbittorrent fontgoggles keysmith pomotroid wavebox
chalk geogebra liclipse private-internet-access wordpresscom
data-science-studio get-backup-pro memory refined-github-safari
==> Caveats
You must restart your terminal window for the installation of MacTex CLI tools to take effect.
Alternatively, Bash and Zsh users can run the command:
eval "$(/usr/libexec/path_helper)"
==> Downloading http://mirror.ctan.org/systems/mac/mactex/mactex-basictex-20200407.pkg
==> Downloading from http://mirrors.ibiblio.org/CTAN/systems/mac/mactex/mactex-basictex-20200407.pkg
######################################################################## 100.0%
==> Verifying SHA-256 checksum for Cask 'basictex'.
==> Installing Cask basictex
==> Running installer for basictex; your password may be necessary.
==> Package installers may write to any location; options such as --appdir are ignored.
Password:
installer: Package name is
installer: Installing at base path /
installer: The install was successful.
🍺 basictex was successfully installed!
And then (in a new terminal):
$ which pdflatex
/Library/TeX/texbin/pdflatex
Success!
Oh never mind, I tried to export an org-file to pdf and I got the following error:
! LaTeX Error: File `wrapfig.sty' not found.
So, let’s try the (much heavier):
$ brew cask install mactex
Error: Cask 'mactex' conflicts with 'basictex'.
EXIT STATUS: 1
$ brew uninstall basictex
==> Uninstalling Cask basictex
==> Uninstalling packages:
org.tug.mactex.basictex2020
Password:
==> Removing files:
/usr/local/texlive/2020basic
/etc/paths.d/TeX
/etc/manpaths.d/TeX
/Library/TeX
==> Purging files for version 2020.0407 of Cask basictex
$ brew cask install mactex
==> Caveats
You must restart your terminal window for the installation of MacTex CLI tools to take effect.
Alternatively, Bash and Zsh users can run the command:
eval "$(/usr/libexec/path_helper)"
==> Downloading http://mirror.ctan.org/systems/mac/mactex/mactex-20200407.pkg
==> Downloading from http://ctan.mirrors.hoobly.com/systems/mac/mactex/mactex-20200407.pk
######################################################################## 100.0%
==> Verifying SHA-256 checksum for Cask 'mactex'.
==> Installing dependencies: jpeg, libtiff, ghostscript
==> Downloading https://homebrew.bintray.com/bottles/jpeg-9d.catalina.bottle.tar.gz
==> Downloading from https://d29vzk4ow07wi7.cloudfront.net/8f7b82a952fb3937889c7f22da1403
######################################################################## 100.0%
==> Installing jpeg
==> Pouring jpeg-9d.catalina.bottle.tar.gz
🍺 /usr/local/Cellar/jpeg/9d: 21 files, 775.2KB
==> Downloading https://homebrew.bintray.com/bottles/libtiff-4.1.0.catalina.bottle.tar.gz
==> Downloading from https://d29vzk4ow07wi7.cloudfront.net/449bd9123e73e4c4eab85b77322d76
######################################################################## 100.0%
==> Installing libtiff
==> Pouring libtiff-4.1.0.catalina.bottle.tar.gz
🍺 /usr/local/Cellar/libtiff/4.1.0: 247 files, 3.7MB
==> Downloading https://homebrew.bintray.com/bottles/ghostscript-9.52.catalina.bottle.tar
==> Downloading from https://d29vzk4ow07wi7.cloudfront.net/8cd0efa1e5525f849be3ee1e50e163
######################################################################## 100.0%
==> Installing ghostscript
==> Pouring ghostscript-9.52.catalina.bottle.tar.gz
🍺 /usr/local/Cellar/ghostscript/9.52: 671 files, 87.4MB
==> Installing Cask mactex
==> Running installer for mactex; your password may be necessary.
==> Package installers may write to any location; options such as --appdir are ignored.
installer: Package name is MacTeX
installer: choices changes file '/var/folders/73/tmnfq8yx79vgc6hjjbvdryyc0000gn/T/choices20200907-81715-pfghpn.xml' applied
installer: Installing at base path /
installer: The install was successful.
🍺 mactex was successfully installed!
Producing a pdf file from my org-file worked!
Postgres
$ brew install postgres
Updating Homebrew...
==> Auto-updated Homebrew!
Updated 2 taps (homebrew/core and homebrew/cask).
==> New Formulae
dbdeployer terrascan
==> Updated Formulae
Updated 82 formulae.
==> New Casks
fastclicker toggl-track
==> Updated Casks
alt-tab flash-player-debugger mkvtoolnix taskade
ariang flash-player-debugger-npapi multitouch tiger-trade
atom flash-player-debugger-ppapi netron torguard
bankid flash-ppapi parallels trinity
bootstrap-studio flipper pock tunnelblick
cctalk fork postman use-engine
chromium frhelper prowritingaid usenapp
cocoapods garagebuy psychopy vassal
couchbase-server-enterprise gemini pynsource vienna
deepl google-chrome qcad visual-studio
dotnet gramps qlcolorcode vivaldi
dotnet-sdk hand-mirror qq webcatalog
eudic insync rescuetime wiznote
expressvpn joplin ringcentral zoom-for-it-admins
fing keysmith securityspy zoomus
finicky koodo-reader softorino-youtube-converter
flash-npapi media-center superproductivity
flash-player meshlab svgcleaner
==> Deleted Casks
mongodb-compass-community toggl
==> Downloading https://homebrew.bintray.com/bottles/icu4c-67.1.catalina.bottle.tar.gz
==> Downloading from https://d29vzk4ow07wi7.cloudfront.net/2d1e91b5127f66e7941790c004817c94c892725c88f84f1e4c37297fcbc0c72f?response-
==> Downloading https://homebrew.bintray.com/bottles/krb5-1.18.2.catalina.bottle.tar.gz
==> Downloading from https://d29vzk4ow07wi7.cloudfront.net/db39e4570abab6459fb857cb41fdd0a375810d25a4c712f4504585255397d150?response-
==> Downloading https://homebrew.bintray.com/bottles/postgresql-12.4.catalina.bottle.tar.gz
==> Downloading from https://d29vzk4ow07wi7.cloudfront.net/cf7e64a4a702db6667582d6a8d83107b67d1457a623fbe04426d9702023612fa?response-
==> Installing dependencies for postgresql: icu4c and krb5
==> Installing postgresql dependency: icu4c
==> Pouring icu4c-67.1.catalina.bottle.tar.gz
==> Caveats
icu4c is keg-only, which means it was not symlinked into /usr/local,
because macOS provides libicucore.dylib (but nothing else).
If you need to have icu4c first in your PATH run:
echo 'export PATH="/usr/local/opt/icu4c/bin:$PATH"' >> /Users/mrussell/.bash_profile
echo 'export PATH="/usr/local/opt/icu4c/sbin:$PATH"' >> /Users/mrussell/.bash_profile
For compilers to find icu4c you may need to set:
export LDFLAGS="-L/usr/local/opt/icu4c/lib"
export CPPFLAGS="-I/usr/local/opt/icu4c/include"
For pkg-config to find icu4c you may need to set:
export PKG_CONFIG_PATH="/usr/local/opt/icu4c/lib/pkgconfig"
==> Summary
🍺 /usr/local/Cellar/icu4c/67.1: 258 files, 71.2MB
==> Installing postgresql dependency: krb5
==> Pouring krb5-1.18.2.catalina.bottle.tar.gz
==> Caveats
krb5 is keg-only, which means it was not symlinked into /usr/local,
because macOS already provides this software and installing another version in
parallel can cause all kinds of trouble.
If you need to have krb5 first in your PATH run:
echo 'export PATH="/usr/local/opt/krb5/bin:$PATH"' >> /Users/mrussell/.bash_profile
echo 'export PATH="/usr/local/opt/krb5/sbin:$PATH"' >> /Users/mrussell/.bash_profile
For compilers to find krb5 you may need to set:
export LDFLAGS="-L/usr/local/opt/krb5/lib"
export CPPFLAGS="-I/usr/local/opt/krb5/include"
For pkg-config to find krb5 you may need to set:
export PKG_CONFIG_PATH="/usr/local/opt/krb5/lib/pkgconfig"
==> Summary
🍺 /usr/local/Cellar/krb5/1.18.2: 162 files, 4.0MB
==> Installing postgresql
==> Pouring postgresql-12.4.catalina.bottle.tar.gz
==> /usr/local/Cellar/postgresql/12.4/bin/initdb --locale=C -E UTF-8 /usr/local/var/postgres
==> Caveats
To migrate existing data from a previous major version of PostgreSQL run:
brew postgresql-upgrade-database
This formula has created a default database cluster with:
initdb --locale=C -E UTF-8 /usr/local/var/postgres
For more details, read:
https://www.postgresql.org/docs/12/app-initdb.html
To have launchd start postgresql now and restart at login:
brew services start postgresql
Or, if you don't want/need a background service you can just run:
pg_ctl -D /usr/local/var/postgres start
==> Summary
🍺 /usr/local/Cellar/postgresql/12.4: 3,223 files, 37.8MB
==> Caveats
==> icu4c
icu4c is keg-only, which means it was not symlinked into /usr/local,
because macOS provides libicucore.dylib (but nothing else).
If you need to have icu4c first in your PATH run:
echo 'export PATH="/usr/local/opt/icu4c/bin:$PATH"' >> /Users/mrussell/.bash_profile
echo 'export PATH="/usr/local/opt/icu4c/sbin:$PATH"' >> /Users/mrussell/.bash_profile
For compilers to find icu4c you may need to set:
export LDFLAGS="-L/usr/local/opt/icu4c/lib"
export CPPFLAGS="-I/usr/local/opt/icu4c/include"
For pkg-config to find icu4c you may need to set:
export PKG_CONFIG_PATH="/usr/local/opt/icu4c/lib/pkgconfig"
==> krb5
krb5 is keg-only, which means it was not symlinked into /usr/local,
because macOS already provides this software and installing another version in
parallel can cause all kinds of trouble.
If you need to have krb5 first in your PATH run:
echo 'export PATH="/usr/local/opt/krb5/bin:$PATH"' >> /Users/mrussell/.bash_profile
echo 'export PATH="/usr/local/opt/krb5/sbin:$PATH"' >> /Users/mrussell/.bash_profile
For compilers to find krb5 you may need to set:
export LDFLAGS="-L/usr/local/opt/krb5/lib"
export CPPFLAGS="-I/usr/local/opt/krb5/include"
For pkg-config to find krb5 you may need to set:
export PKG_CONFIG_PATH="/usr/local/opt/krb5/lib/pkgconfig"
==> postgresql
To migrate existing data from a previous major version of PostgreSQL run:
brew postgresql-upgrade-database
This formula has created a default database cluster with:
initdb --locale=C -E UTF-8 /usr/local/var/postgres
For more details, read:
https://www.postgresql.org/docs/12/app-initdb.html
To have launchd start postgresql now and restart at login:
brew services start postgresql
Or, if you don't want/need a background service you can just run:
pg_ctl -D /usr/local/var/postgres start
Check:
$ postgres -V
postgres (PostgreSQL) 12.4
Instructions here on how to start a Postgres server automatically on login.
Visual Studio Code
$ brew cask install visual-studio-code
Updating Homebrew...
==> Auto-updated Homebrew!
Updated 1 tap (homebrew/cask).
==> Updated Casks
lrtimelapse
==> Downloading https://update.code.visualstudio.com/1.48.2/darwin/stable
==> Downloading from https://az764295.vo.msecnd.net/stable/a0479759d6e9ea56afa657e454193f72aef85bd0/VSCode-darwin-stable.zip
==> Verifying SHA-256 checksum for Cask 'visual-studio-code'.
==> Installing Cask visual-studio-code
==> Moving App 'Visual Studio Code.app' to '/Applications/Visual Studio Code.app'.
==> Linking Binary 'code' to '/usr/local/bin/code'.
🍺 visual-studio-code was successfully installed!
OCaml
$ brew install opam
Updating Homebrew...
==> Auto-updated Homebrew!
Updated 2 taps (homebrew/core and homebrew/cask).
==> Updated Formulae
Updated 5 formulae.
==> Updated Casks
activedock mactracker meetingbar
==> Downloading https://homebrew.bintray.com/bottles/opam-2.0.7.catalina.bottle.
==> Downloading from https://d29vzk4ow07wi7.cloudfront.net/f159a779ee6521c95c06b
==> Pouring opam-2.0.7.catalina.bottle.tar.gz
==> Caveats
OPAM uses ~/.opam by default for its package database, so you need to
initialize it first by running:
$ opam init
Bash completion has been installed to:
/usr/local/etc/bash_completion.d
zsh completions have been installed to:
/usr/local/share/zsh/site-functions
==> Summary
🍺 /usr/local/Cellar/opam/2.0.7: 48 files, 11.4MB
$ opam init
[NOTE] Will configure from built-in defaults.
Checking for available remotes: rsync and local, git.
- you won't be able to use mercurial repositories unless you install the hg
command on your system.
- you won't be able to use darcs repositories unless you install the darcs
command on your system.
<><> Fetching repository information ><><><><><><><><><><><><><><><><><><><> 🐫
[default] Initialised
<><> Required setup - please read <><><><><><><><><><><><><><><><><><><><><> 🐫
In normal operation, opam only alters files within ~/.opam.
However, to best integrate with your system, some environment variables
should be set. If you allow it to, this initialisation step will update
your bash configuration by adding the following line to ~/.bash_profile:
test -r /Users/mrussell/.opam/opam-init/init.sh && . /Users/mrussell/.opam/opam-init/init.sh > /dev/null 2> /dev/null || true
Otherwise, every time you want to access your opam installation, you will
need to run:
eval $(opam env)
You can always re-run this setup with 'opam init' later.
Do you want opam to modify ~/.bash_profile? [N/y/f]
(default is 'no', use 'f' to choose a different file) y
A hook can be added to opam's init scripts to ensure that the shell remains in sync with the opam environment when they are
loaded. Set that up? [y/N] y
User configuration:
~/.bash_profile is already configured for another opam root.
<><> Creating initial switch (ocaml-base-compiler) ><><><><><><><><><><><><> 🐫
<><> Gathering sources ><><><><><><><><><><><><><><><><><><><><><><><><><><> 🐫
[ocaml-base-compiler.4.11.1] downloaded from cache at https://opam.ocaml.org/cache
<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><> 🐫
∗ installed base-bigarray.base
∗ installed base-threads.base
∗ installed base-unix.base
∗ installed ocaml-base-compiler.4.11.1
∗ installed ocaml-config.1
∗ installed ocaml.4.11.1
Done.
# Run eval $(opam env) to update the current shell environment
$ eval $(opam env)
Install utop
:
$ opam install utop
The following actions will be performed:
∗ install dune 2.7.1 [required by utop]
∗ install seq base [required by lwt]
∗ install conf-m4 1 [required by ocamlfind]
∗ install ocamlbuild 0.14.0 [required by react]
∗ install trie 1.0.0 [required by mew]
∗ install result 1.5 [required by lwt]
∗ install mmap 1.1.0 [required by lwt]
∗ install cppo 1.6.6 [required by utop]
∗ install camomile 1.0.2 [required by utop]
∗ install ocamlfind 1.8.1 [required by utop]
∗ install mew 0.1.0 [required by mew_vi]
∗ install csexp 1.3.1 [required by dune-configurator]
∗ install charInfo_width 1.1.0 [required by zed]
∗ install topkg 1.0.2 [required by react]
∗ install base-bytes base [required by zed]
∗ install dune-configurator 2.7.1 [required by lwt]
∗ install react 1.2.1 [required by utop]
∗ install ocplib-endian 1.1 [required by lwt]
∗ install zed 3.1.0 [required by lambda-term]
∗ install mew_vi 0.5.0 [required by lambda-term]
∗ install lwt 5.3.0 [required by utop]
∗ install lwt_react 1.1.3 [required by utop]
∗ install lwt_log 1.1.1 [required by lambda-term]
∗ install lambda-term 3.1.0 [required by utop]
∗ install utop 2.6.0
===== ∗ 25 =====
Do you want to continue? [Y/n] y
<><> Gathering sources ><><><><><><><><><><><><><><><><><><><><><><><><><><> 🐫
[charInfo_width.1.1.0] downloaded from cache at https://opam.ocaml.org/cache
[cppo.1.6.6] downloaded from cache at https://opam.ocaml.org/cache
[csexp.1.3.1] downloaded from cache at https://opam.ocaml.org/cache
[dune.2.7.1] downloaded from cache at https://opam.ocaml.org/cache
[camomile.1.0.2] downloaded from cache at https://opam.ocaml.org/cache
[lambda-term.3.1.0] downloaded from cache at https://opam.ocaml.org/cache
[lwt_log.1.1.1] downloaded from cache at https://opam.ocaml.org/cache
[dune-configurator.2.7.1] downloaded from cache at https://opam.ocaml.org/cache
[lwt.5.3.0] downloaded from cache at https://opam.ocaml.org/cache
[lwt_react.1.1.3] downloaded from cache at https://opam.ocaml.org/cache
[mew.0.1.0] downloaded from cache at https://opam.ocaml.org/cache
[mew_vi.0.5.0] downloaded from cache at https://opam.ocaml.org/cache
[mmap.1.1.0] downloaded from cache at https://opam.ocaml.org/cache
[ocplib-endian.1.1] downloaded from cache at https://opam.ocaml.org/cache
[ocamlbuild.0.14.0] downloaded from cache at https://opam.ocaml.org/cache
[ocamlfind.1.8.1] downloaded from cache at https://opam.ocaml.org/cache
[react.1.2.1] downloaded from cache at https://opam.ocaml.org/cache
[result.1.5] downloaded from cache at https://opam.ocaml.org/cache
[trie.1.0.0] downloaded from cache at https://opam.ocaml.org/cache
[topkg.1.0.2] downloaded from cache at https://opam.ocaml.org/cache
[zed.3.1.0] downloaded from cache at https://opam.ocaml.org/cache
[utop.2.6.0] downloaded from cache at https://opam.ocaml.org/cache
<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><> 🐫
∗ installed seq.base
∗ installed conf-m4.1
∗ installed ocamlfind.1.8.1
∗ installed base-bytes.base
∗ installed ocamlbuild.0.14.0
∗ installed dune.2.7.1
∗ installed topkg.1.0.2
∗ installed trie.1.0.0
∗ installed result.1.5
∗ installed mmap.1.1.0
∗ installed cppo.1.6.6
∗ installed csexp.1.3.1
∗ installed ocplib-endian.1.1
∗ installed mew.0.1.0
∗ installed react.1.2.1
∗ installed dune-configurator.2.7.1
∗ installed mew_vi.0.5.0
∗ installed camomile.1.0.2
∗ installed lwt.5.3.0
∗ installed charInfo_width.1.1.0
∗ installed lwt_react.1.1.3
∗ installed lwt_log.1.1.1
∗ installed zed.3.1.0
∗ installed lambda-term.3.1.0
∗ installed utop.2.6.0
Done.
Install Jane Street’s core libraries:
$ opam install base core async
The following actions will be performed:
∗ install ppx_derivers 1.2.1 [required by ppxlib]
∗ install stdlib-shims 0.1.0 [required by ppxlib]
∗ install sexplib0 v0.14.0 [required by base]
∗ install jane-street-headers v0.14.0 [required by core_kernel]
∗ install spawn v0.13.0 [required by core]
∗ install re 1.9.0 [required by ppx_expect]
∗ install num 1.3 [required by sexplib]
∗ install octavius 1.2.2 [required by ppx_js_style]
∗ install ocaml-compiler-libs v0.12.1 [required by ppxlib]
∗ install ocaml-migrate-parsetree 2.0.0 [required by ppxlib]
∗ install base v0.14.0
∗ install ppxlib 0.16.0 [required by ppx_jane]
∗ install variantslib v0.14.0 [required by core_kernel]
∗ install typerep v0.14.0 [required by core_kernel]
∗ install stdio v0.14.0 [required by core_kernel]
∗ install parsexp v0.14.0 [required by sexplib]
∗ install fieldslib v0.14.0 [required by core_kernel]
∗ install ppx_stable v0.14.1 [required by ppx_jane]
∗ install ppx_sexp_conv v0.14.1 [required by core_kernel]
∗ install ppx_pipebang v0.14.0 [required by ppx_jane]
∗ install ppx_optional v0.14.0 [required by ppx_jane]
∗ install ppx_let v0.14.0 [required by ppx_jane]
∗ install ppx_js_style v0.14.0 [required by ppx_base]
∗ install ppx_here v0.14.0 [required by ppx_jane]
∗ install ppx_fixed_literal v0.14.0 [required by ppx_jane]
∗ install ppx_enumerate v0.14.0 [required by ppx_base]
∗ install ppx_compare v0.14.0 [required by ppx_base, bin_prot]
∗ install ppx_cold v0.14.0 [required by ppx_base]
∗ install ppx_variants_conv v0.14.1 [required by ppx_jane]
∗ install ppx_typerep_conv v0.14.1 [required by ppx_jane]
∗ install ppx_optcomp v0.14.0 [required by ppx_jane]
∗ install sexplib v0.14.0 [required by core]
∗ install ppx_fields_conv v0.14.1 [required by ppx_jane]
∗ install ppx_custom_printf v0.14.0 [required by ppx_jane]
∗ install ppx_sexp_value v0.14.0 [required by ppx_jane]
∗ install ppx_sexp_message v0.14.0 [required by core_kernel]
∗ install ppx_hash v0.14.0 [required by core_kernel]
∗ install ppx_assert v0.14.0 [required by core_kernel]
∗ install bin_prot v0.14.0 [required by core_kernel]
∗ install ppx_base v0.14.0 [required by core_kernel]
∗ install jst-config v0.14.0 [required by core]
∗ install ppx_bin_prot v0.14.0 [required by ppx_jane]
∗ install ppx_string v0.14.1 [required by ppx_jane]
∗ install time_now v0.14.0 [required by core_kernel]
∗ install ppx_module_timer v0.14.0 [required by ppx_jane]
∗ install ppx_inline_test v0.14.1 [required by core_kernel]
∗ install ppx_expect v0.14.0 [required by ppx_jane]
∗ install ppx_bench v0.14.1 [required by ppx_jane]
∗ install splittable_random v0.14.0 [required by core_kernel]
∗ install base_quickcheck v0.14.0 [required by core_kernel]
∗ install ppx_jane v0.14.0 [required by async, core]
∗ install base_bigstring v0.14.0 [required by core_kernel]
∗ install core_kernel v0.14.0 [required by async, core]
∗ install timezone v0.14.0 [required by core]
∗ install protocol_version_header v0.14.0 [required by async_rpc_kernel]
∗ install async_kernel v0.14.0 [required by async]
∗ install core v0.14.0
∗ install async_rpc_kernel v0.14.0 [required by async]
∗ install textutils v0.14.0 [required by async]
∗ install async_unix v0.14.0 [required by async]
∗ install async v0.14.0
===== ∗ 61 =====
Do you want to continue? [Y/n] y
<><> Gathering sources ><><><><><><><><><><><><><><><><><><><><><><><><><><> 🐫
[async_rpc_kernel.v0.14.0] downloaded from cache at https://opam.ocaml.org/cache
[async.v0.14.0] downloaded from cache at https://opam.ocaml.org/cache
[async_kernel.v0.14.0] downloaded from cache at https://opam.ocaml.org/cache
[base_bigstring.v0.14.0] downloaded from cache at https://opam.ocaml.org/cache
[async_unix.v0.14.0] downloaded from cache at https://opam.ocaml.org/cache
[base.v0.14.0] downloaded from cache at https://opam.ocaml.org/cache
[base_quickcheck.v0.14.0] downloaded from cache at https://opam.ocaml.org/cache
[bin_prot.v0.14.0] downloaded from cache at https://opam.ocaml.org/cache
[fieldslib.v0.14.0] downloaded from cache at https://opam.ocaml.org/cache
[core.v0.14.0] downloaded from cache at https://opam.ocaml.org/cache
[jane-street-headers.v0.14.0] downloaded from cache at https://opam.ocaml.org/cache
[core_kernel.v0.14.0] downloaded from cache at https://opam.ocaml.org/cache
[jst-config.v0.14.0] downloaded from cache at https://opam.ocaml.org/cache
[num.1.3] downloaded from cache at https://opam.ocaml.org/cache
[ocaml-compiler-libs.v0.12.1] downloaded from cache at https://opam.ocaml.org/cache
[ocaml-migrate-parsetree.2.0.0] downloaded from cache at https://opam.ocaml.org/cache
[octavius.1.2.2] downloaded from cache at https://opam.ocaml.org/cache
[parsexp.v0.14.0] downloaded from cache at https://opam.ocaml.org/cache
[ppx_assert.v0.14.0] downloaded from cache at https://opam.ocaml.org/cache
[ppx_base.v0.14.0] downloaded from cache at https://opam.ocaml.org/cache
[ppx_bench.v0.14.1] downloaded from cache at https://opam.ocaml.org/cache
[ppx_cold.v0.14.0] downloaded from cache at https://opam.ocaml.org/cache
[ppx_bin_prot.v0.14.0] downloaded from cache at https://opam.ocaml.org/cache
[ppx_compare.v0.14.0] downloaded from cache at https://opam.ocaml.org/cache
[ppx_custom_printf.v0.14.0] downloaded from cache at https://opam.ocaml.org/cache
[ppx_derivers.1.2.1] downloaded from cache at https://opam.ocaml.org/cache
[ppx_enumerate.v0.14.0] downloaded from cache at https://opam.ocaml.org/cache
[ppx_fields_conv.v0.14.1] downloaded from cache at https://opam.ocaml.org/cache
[ppx_fixed_literal.v0.14.0] downloaded from cache at https://opam.ocaml.org/cache
[ppx_expect.v0.14.0] downloaded from cache at https://opam.ocaml.org/cache
[ppx_hash.v0.14.0] downloaded from cache at https://opam.ocaml.org/cache
[ppx_here.v0.14.0] downloaded from cache at https://opam.ocaml.org/cache
[ppx_inline_test.v0.14.1] downloaded from cache at https://opam.ocaml.org/cache
[ppx_jane.v0.14.0] downloaded from cache at https://opam.ocaml.org/cache
[ppx_js_style.v0.14.0] downloaded from cache at https://opam.ocaml.org/cache
[ppx_let.v0.14.0] downloaded from cache at https://opam.ocaml.org/cache
[ppx_module_timer.v0.14.0] downloaded from cache at https://opam.ocaml.org/cache
[ppx_optcomp.v0.14.0] downloaded from cache at https://opam.ocaml.org/cache
[ppx_optional.v0.14.0] downloaded from cache at https://opam.ocaml.org/cache
[ppx_pipebang.v0.14.0] downloaded from cache at https://opam.ocaml.org/cache
[ppx_sexp_message.v0.14.0] downloaded from cache at https://opam.ocaml.org/cache
[ppx_sexp_conv.v0.14.1] downloaded from cache at https://opam.ocaml.org/cache
[ppx_sexp_value.v0.14.0] downloaded from cache at https://opam.ocaml.org/cache
[ppx_stable.v0.14.1] downloaded from cache at https://opam.ocaml.org/cache
[ppx_string.v0.14.1] downloaded from cache at https://opam.ocaml.org/cache
[ppx_typerep_conv.v0.14.1] downloaded from cache at https://opam.ocaml.org/cache
[ppx_variants_conv.v0.14.1] downloaded from cache at https://opam.ocaml.org/cache
[protocol_version_header.v0.14.0] downloaded from cache at https://opam.ocaml.org/cache
[ppxlib.0.16.0] downloaded from cache at https://opam.ocaml.org/cache
[re.1.9.0] downloaded from cache at https://opam.ocaml.org/cache
[sexplib.v0.14.0] downloaded from cache at https://opam.ocaml.org/cache
[sexplib0.v0.14.0] downloaded from cache at https://opam.ocaml.org/cache
[spawn.v0.13.0] downloaded from cache at https://opam.ocaml.org/cache
[splittable_random.v0.14.0] downloaded from cache at https://opam.ocaml.org/cache
[stdio.v0.14.0] downloaded from cache at https://opam.ocaml.org/cache
[stdlib-shims.0.1.0] downloaded from cache at https://opam.ocaml.org/cache
[textutils.v0.14.0] downloaded from cache at https://opam.ocaml.org/cache
[time_now.v0.14.0] downloaded from cache at https://opam.ocaml.org/cache
[timezone.v0.14.0] downloaded from cache at https://opam.ocaml.org/cache
[typerep.v0.14.0] downloaded from cache at https://opam.ocaml.org/cache
[variantslib.v0.14.0] downloaded from cache at https://opam.ocaml.org/cache
<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><> 🐫
∗ installed jane-street-headers.v0.14.0
∗ installed stdlib-shims.0.1.0
∗ installed spawn.v0.13.0
∗ installed sexplib0.v0.14.0
∗ installed num.1.3
∗ installed ocaml-compiler-libs.v0.12.1
∗ installed octavius.1.2.2
∗ installed ppx_derivers.1.2.1
∗ installed re.1.9.0
∗ installed ocaml-migrate-parsetree.2.0.0
∗ installed base.v0.14.0
∗ installed fieldslib.v0.14.0
∗ installed variantslib.v0.14.0
∗ installed stdio.v0.14.0
∗ installed typerep.v0.14.0
∗ installed parsexp.v0.14.0
∗ installed ppxlib.0.16.0
∗ installed ppx_cold.v0.14.0
∗ installed sexplib.v0.14.0
∗ installed ppx_variants_conv.v0.14.1
∗ installed ppx_typerep_conv.v0.14.1
∗ installed ppx_stable.v0.14.1
∗ installed ppx_sexp_conv.v0.14.1
∗ installed ppx_pipebang.v0.14.0
∗ installed ppx_optional.v0.14.0
∗ installed ppx_optcomp.v0.14.0
∗ installed ppx_let.v0.14.0
∗ installed ppx_js_style.v0.14.0
∗ installed ppx_here.v0.14.0
∗ installed ppx_fixed_literal.v0.14.0
∗ installed ppx_custom_printf.v0.14.0
∗ installed ppx_fields_conv.v0.14.1
∗ installed ppx_enumerate.v0.14.0
∗ installed ppx_compare.v0.14.0
∗ installed ppx_sexp_message.v0.14.0
∗ installed ppx_sexp_value.v0.14.0
∗ installed ppx_hash.v0.14.0
∗ installed ppx_assert.v0.14.0
∗ installed bin_prot.v0.14.0
∗ installed ppx_base.v0.14.0
∗ installed jst-config.v0.14.0
∗ installed ppx_bin_prot.v0.14.0
∗ installed ppx_string.v0.14.1
∗ installed time_now.v0.14.0
∗ installed ppx_module_timer.v0.14.0
∗ installed ppx_inline_test.v0.14.1
∗ installed ppx_bench.v0.14.1
∗ installed ppx_expect.v0.14.0
∗ installed splittable_random.v0.14.0
∗ installed base_quickcheck.v0.14.0
∗ installed ppx_jane.v0.14.0
∗ installed base_bigstring.v0.14.0
∗ installed core_kernel.v0.14.0
∗ installed protocol_version_header.v0.14.0
∗ installed timezone.v0.14.0
∗ installed async_kernel.v0.14.0
∗ installed async_rpc_kernel.v0.14.0
∗ installed core.v0.14.0
∗ installed textutils.v0.14.0
∗ installed async_unix.v0.14.0
∗ installed async.v0.14.0
Done.
I cannot open Core
in utop
, so now following (Ron’s) instructions here:
$ cat > ~/.ocamlinit
#use "topfind";;
#thread;;
#require "core.top";;
^C
EXIT STATUS: 130
$ cat ~/.ocamlinit
#use "topfind";;
#thread;;
#require "core.top";;
$ utop
─────────────────────────────────────────┬─────────────────────────────────────────────────────────────┬──────────────────────────────────────────
│ Welcome to utop version 2.6.0 (using OCaml version 4.11.1)! │
└─────────────────────────────────────────────────────────────┘
Findlib has been successfully loaded. Additional directives:
#require "package";; to load a package
#list;; to list the available packages
#camlp4o;; to load camlp4 (standard syntax)
#camlp4r;; to load camlp4 (revised syntax)
#predicates "p,q,...";; to set these predicates
Topfind.reset();; to force that packages will be reloaded
#thread;; to enable threads
Type #utop_help for help about using utop.
─( 12:47:14 )─< command 0 >────────────────────────────────────────────────────────────────────────────────────────────────────────{ counter: 0 }─
utop # open Core;;
─( 12:47:16 )─< command 1 >────────────────────────────────────────────────────────────────────────────────────────────────────────{ counter: 0 }─
utop # Core.List.fold;;
- : 'a list -> init:'accum -> f:('accum -> 'a -> 'accum) -> 'accum = <fun>
Success!
Editor setup (still following instructions here):
$ opam install tuareg merlin
The following actions will be performed:
∗ install easy-format 1.3.2 [required by yojson]
∗ install conf-emacs 1 [required by tuareg]
∗ install biniou 1.2.1 [required by yojson]
∗ install yojson 1.7.0 [required by merlin]
∗ install merlin 3.3.9
∗ install tuareg 2.2.0
===== ∗ 6 =====
Do you want to continue? [Y/n] y
<><> Gathering sources ><><><><><><><><><><><><><><><><><><><><><><><><><><> 🐫
[easy-format.1.3.2] downloaded from cache at https://opam.ocaml.org/cache
[biniou.1.2.1] downloaded from cache at https://opam.ocaml.org/cache
[yojson.1.7.0] downloaded from cache at https://opam.ocaml.org/cache
[tuareg.2.2.0] downloaded from cache at https://opam.ocaml.org/cache
[merlin.3.3.9] downloaded from cache at https://opam.ocaml.org/cache
<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><> 🐫
∗ installed conf-emacs.1
∗ installed easy-format.1.3.2
∗ installed biniou.1.2.1
∗ installed yojson.1.7.0
∗ installed merlin.3.3.9
∗ installed tuareg.2.2.0
Done.
<><> merlin.3.3.9 installed successfully ><><><><><><><><><><><><><><><><><> 🐫
=> merlin installed.
Quick setup for VIM
-------------------
Append this to your .vimrc to add merlin to vim's runtime-path:
let g:opamshare = substitute(system('opam config var share'),'\n$','','''')
execute "set rtp+=" . g:opamshare . "/merlin/vim"
Also run the following line in vim to index the documentation:
:execute "helptags " . g:opamshare . "/merlin/vim/doc"
Quick setup for EMACS
-------------------
Add opam emacs directory to your load-path by appending this to your .emacs:
(let ((opam-share (ignore-errors (car (process-lines "opam" "config" "var" "share")))))
(when (and opam-share (file-directory-p opam-share))
;; Register Merlin
(add-to-list 'load-path (expand-file-name "emacs/site-lisp" opam-share))
(autoload 'merlin-mode "merlin" nil t nil)
;; Automatically start it in OCaml buffers
(add-hook 'tuareg-mode-hook 'merlin-mode t)
(add-hook 'caml-mode-hook 'merlin-mode t)
;; Use opam switch to lookup ocamlmerlin binary
(setq merlin-command 'opam)))
Take a look at https://github.com/ocaml/merlin for more information
Quick setup with opam-user-setup
--------------------------------
Opam-user-setup support Merlin.
$ opam user-setup install
should take care of basic setup.
See https://github.com/OCamlPro/opam-user-setup
<><> tuareg.2.2.0 installed successfully ><><><><><><><><><><><><><><><><><> 🐫
=> If you have not yet done so, please add the following line to ~/.emacs.d/init.el or ~/.emacs:
(load "/Users/mrussell/.opam/default/share/emacs/site-lisp/tuareg-site-file")
=> You should consider installing "merlin" (completion, displaying types,...)
or "caml-mode" (displaying types). See https://github.com/ocaml/tuareg
for customization tips.
$ opam install user-setup
The following actions will be performed:
∗ install cmdliner 1.0.4 [required by user-setup]
∗ install user-setup 0.7
===== ∗ 2 =====
Do you want to continue? [Y/n] y
<><> Gathering sources ><><><><><><><><><><><><><><><><><><><><><><><><><><> 🐫
[user-setup.0.7] downloaded from cache at https://opam.ocaml.org/cache
[cmdliner.1.0.4] downloaded from cache at https://opam.ocaml.org/cache
<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><> 🐫
∗ installed cmdliner.1.0.4
∗ installed user-setup.0.7
Done.
<><> user-setup.0.7 installed successfully ><><><><><><><><><><><><><><><><> 🐫
=> To setup or update your editors, run 'opam user-setup install'.
$ opam user-setup install
ocamltop > base > .ocamlinit: adding configuration
emacs > .emacs: already exists, not installing base template
emacs > base > .emacs: adding configuration
emacs > base > .emacs.d/opam-user-setup.el: adding configuration
emacs > tuareg > .emacs.d/opam-user-setup.el: adding configuration
vim > /Users/mrussell/.vimrc: installing new config file template
vim > base > .vimrc: adding configuration
OCamlformat: following instructions here:
$ opam install ocamlformat
The following actions will be performed:
∗ install fix 20200131 [required by ocamlformat]
∗ install menhirLib 20200624 [required by menhir]
↘ downgrade ocaml-migrate-parsetree 2.0.0 to 1.7.3 [required by ocamlformat]
∗ install uchar 0.0.2 [required by uutf]
∗ install menhirSdk 20200624 [required by menhir]
∗ install astring 0.8.5 [required by fpath, odoc]
↘ downgrade ppxlib 0.16.0 to 0.15.0 [uses ocaml-migrate-parsetree]
∗ install uutf 1.0.2 [required by ocamlformat]
∗ install menhir 20200624 [required by ocamlformat]
∗ install fpath 0.7.3 [required by ocamlformat]
↻ recompile ppx_variants_conv v0.14.1 [uses ppxlib]
↻ recompile ppx_typerep_conv v0.14.1 [uses ppxlib]
↻ recompile ppx_stable v0.14.1 [uses ppxlib]
↻ recompile ppx_sexp_conv v0.14.1 [uses ppxlib]
↻ recompile ppx_pipebang v0.14.0 [uses ppxlib]
↻ recompile ppx_optional v0.14.0 [uses ppxlib]
↻ recompile ppx_optcomp v0.14.0 [uses ppxlib]
↻ recompile ppx_let v0.14.0 [uses ppxlib]
↻ recompile ppx_js_style v0.14.0 [uses ppxlib]
↻ recompile ppx_here v0.14.0 [uses ppxlib]
↻ recompile ppx_fixed_literal v0.14.0 [uses ppxlib]
↻ recompile ppx_fields_conv v0.14.1 [uses ppxlib]
↻ recompile ppx_enumerate v0.14.0 [uses ppxlib]
↻ recompile ppx_compare v0.14.0 [uses ppxlib]
↻ recompile ppx_cold v0.14.0 [uses ppxlib]
∗ install uucp 13.0.0 [required by uuseg]
∗ install tyxml 4.4.0 [required by odoc]
↻ recompile ppx_custom_printf v0.14.0 [uses ppxlib]
↻ recompile ppx_sexp_value v0.14.0 [uses ppxlib]
↻ recompile ppx_sexp_message v0.14.0 [uses ppxlib]
↻ recompile ppx_hash v0.14.0 [uses ppxlib]
↻ recompile ppx_assert v0.14.0 [uses ppxlib]
∗ install uuseg 13.0.0 [required by ocamlformat]
∗ install odoc 1.5.1 [required by ocamlformat]
↻ recompile bin_prot v0.14.0 [uses ppx_sexp_conv, ppx_fields_conv, ppx_compare, etc.]
↻ recompile ppx_base v0.14.0 [uses ppxlib]
↻ recompile jst-config v0.14.0 [uses ppx_assert]
∗ install ocamlformat 0.15.0
↻ recompile ppx_bin_prot v0.14.0 [uses ppxlib]
↻ recompile ppx_string v0.14.1 [uses ppxlib]
↻ recompile time_now v0.14.0 [uses ppx_base, ppx_optcomp]
↻ recompile ppx_module_timer v0.14.0 [uses ppxlib]
↻ recompile ppx_inline_test v0.14.1 [uses ppxlib]
↻ recompile ppx_expect v0.14.0 [uses ppxlib]
↻ recompile ppx_bench v0.14.1 [uses ppxlib]
↻ recompile splittable_random v0.14.0 [uses ppx_assert]
↻ recompile base_quickcheck v0.14.0 [uses ppxlib]
↻ recompile ppx_jane v0.14.0 [uses ppxlib]
↻ recompile base_bigstring v0.14.0 [uses ppx_jane]
↻ recompile core_kernel v0.14.0 [uses ppx_base, base_quickcheck, ppx_assert, ppx_sexp_conv]
↻ recompile timezone v0.14.0 [uses core_kernel, ppx_jane]
↻ recompile protocol_version_header v0.14.0 [uses core_kernel, ppx_jane]
↻ recompile async_kernel v0.14.0 [uses core_kernel, ppx_jane]
↻ recompile core v0.14.0 [uses ppx_jane, core_kernel, jst-config]
↻ recompile async_rpc_kernel v0.14.0 [uses core_kernel, ppx_jane]
↻ recompile textutils v0.14.0 [uses core_kernel, ppx_jane]
↻ recompile async_unix v0.14.0 [uses core_kernel, ppx_jane]
↻ recompile async v0.14.0 [uses core_kernel, ppx_jane]
===== ∗ 13 ↻ 43 ↘ 2 =====
Do you want to continue? [Y/n] y
<><> Gathering sources ><><><><><><><><><><><><><><><><><><><><><><><><><><> 🐫
[async.v0.14.0] found in cache
[async_kernel.v0.14.0] found in cache
[async_rpc_kernel.v0.14.0] found in cache
[async_unix.v0.14.0] found in cache
[base_bigstring.v0.14.0] found in cache
[base_quickcheck.v0.14.0] found in cache
[bin_prot.v0.14.0] found in cache
[core.v0.14.0] found in cache
[core_kernel.v0.14.0] found in cache
[astring.0.8.5] downloaded from cache at https://opam.ocaml.org/cache
[jst-config.v0.14.0] found in cache
[fpath.0.7.3] downloaded from cache at https://opam.ocaml.org/cache
[fix.20200131] downloaded from cache at https://opam.ocaml.org/cache
[menhir.20200624] downloaded from cache at https://opam.ocaml.org/cache
[ocaml-migrate-parsetree.1.7.3] downloaded from cache at https://opam.ocaml.org/cache
[menhirLib.20200624] downloaded from cache at https://opam.ocaml.org/cache
[ocamlformat.0.15.0] downloaded from cache at https://opam.ocaml.org/cache
[ppx_assert.v0.14.0] found in cache
[ppx_base.v0.14.0] found in cache
[ppx_bench.v0.14.1] found in cache
[ppx_bin_prot.v0.14.0] found in cache
[ppx_cold.v0.14.0] found in cache
[ppx_compare.v0.14.0] found in cache
[ppx_custom_printf.v0.14.0] found in cache
[ppx_enumerate.v0.14.0] found in cache
[ppx_expect.v0.14.0] found in cache
[ppx_fields_conv.v0.14.1] found in cache
[odoc.1.5.1] downloaded from cache at https://opam.ocaml.org/cache
[ppx_fixed_literal.v0.14.0] found in cache
[ppx_hash.v0.14.0] found in cache
[ppx_here.v0.14.0] found in cache
[ppx_inline_test.v0.14.1] found in cache
[ppx_jane.v0.14.0] found in cache
[ppx_js_style.v0.14.0] found in cache
[ppx_let.v0.14.0] found in cache
[ppx_module_timer.v0.14.0] found in cache
[ppx_optcomp.v0.14.0] found in cache
[ppx_optional.v0.14.0] found in cache
[ppx_pipebang.v0.14.0] found in cache
[ppx_sexp_conv.v0.14.1] found in cache
[ppx_sexp_message.v0.14.0] found in cache
[ppx_sexp_value.v0.14.0] found in cache
[ppx_stable.v0.14.1] found in cache
[ppx_string.v0.14.1] found in cache
[ppx_typerep_conv.v0.14.1] found in cache
[ppx_variants_conv.v0.14.1] found in cache
[protocol_version_header.v0.14.0] found in cache
[splittable_random.v0.14.0] found in cache
[textutils.v0.14.0] found in cache
[menhirSdk.20200624] downloaded from cache at https://opam.ocaml.org/cache
[time_now.v0.14.0] found in cache
[timezone.v0.14.0] found in cache
[ppxlib.0.15.0] downloaded from cache at https://opam.ocaml.org/cache
[uchar.0.0.2] downloaded from cache at https://opam.ocaml.org/cache
[tyxml.4.4.0] downloaded from cache at https://opam.ocaml.org/cache
[uuseg.13.0.0] downloaded from cache at https://opam.ocaml.org/cache
[uutf.1.0.2] downloaded from cache at https://opam.ocaml.org/cache
[uucp.13.0.0] downloaded from cache at https://opam.ocaml.org/cache
<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><> 🐫
∗ installed uchar.0.0.2
∗ installed menhirSdk.20200624
∗ installed menhirLib.20200624
∗ installed fix.20200131
∗ installed uutf.1.0.2
∗ installed astring.0.8.5
∗ installed fpath.0.7.3
⊘ removed async.v0.14.0
⊘ removed async_rpc_kernel.v0.14.0
⊘ removed async_unix.v0.14.0
⊘ removed async_kernel.v0.14.0
⊘ removed protocol_version_header.v0.14.0
⊘ removed textutils.v0.14.0
⊘ removed core.v0.14.0
⊘ removed timezone.v0.14.0
⊘ removed core_kernel.v0.14.0
⊘ removed base_bigstring.v0.14.0
⊘ removed ppx_jane.v0.14.0
⊘ removed base_quickcheck.v0.14.0
⊘ removed ppx_bin_prot.v0.14.0
⊘ removed bin_prot.v0.14.0
⊘ removed ppx_custom_printf.v0.14.0
⊘ removed ppx_expect.v0.14.0
⊘ removed ppx_fields_conv.v0.14.1
⊘ removed ppx_fixed_literal.v0.14.0
⊘ removed ppx_let.v0.14.0
⊘ removed ppx_module_timer.v0.14.0
⊘ removed ppx_optional.v0.14.0
⊘ removed ppx_pipebang.v0.14.0
⊘ removed ppx_sexp_value.v0.14.0
⊘ removed ppx_stable.v0.14.1
⊘ removed ppx_string.v0.14.1
⊘ removed ppx_typerep_conv.v0.14.1
⊘ removed ppx_variants_conv.v0.14.1
⊘ removed splittable_random.v0.14.0
⊘ removed ppx_bench.v0.14.1
⊘ removed ppx_inline_test.v0.14.1
⊘ removed ppx_sexp_message.v0.14.0
⊘ removed time_now.v0.14.0
⊘ removed jst-config.v0.14.0
⊘ removed ppx_assert.v0.14.0
⊘ removed ppx_base.v0.14.0
⊘ removed ppx_cold.v0.14.0
⊘ removed ppx_enumerate.v0.14.0
⊘ removed ppx_hash.v0.14.0
⊘ removed ppx_compare.v0.14.0
⊘ removed ppx_here.v0.14.0
⊘ removed ppx_js_style.v0.14.0
⊘ removed ppx_optcomp.v0.14.0
⊘ removed ppx_sexp_conv.v0.14.1
⊘ removed ppxlib.0.16.0
⊘ removed ocaml-migrate-parsetree.2.0.0
∗ installed ocaml-migrate-parsetree.1.7.3
∗ installed tyxml.4.4.0
∗ installed menhir.20200624
∗ installed odoc.1.5.1
∗ installed uucp.13.0.0
∗ installed ppxlib.0.15.0
∗ installed ppx_cold.v0.14.0
∗ installed uuseg.13.0.0
∗ installed ppx_optcomp.v0.14.0
∗ installed ppx_variants_conv.v0.14.1
∗ installed ppx_typerep_conv.v0.14.1
∗ installed ppx_stable.v0.14.1
∗ installed ppx_sexp_conv.v0.14.1
∗ installed ppx_pipebang.v0.14.0
∗ installed ppx_optional.v0.14.0
∗ installed ppx_let.v0.14.0
∗ installed ppx_js_style.v0.14.0
∗ installed ppx_here.v0.14.0
∗ installed ppx_fixed_literal.v0.14.0
∗ installed ppx_fields_conv.v0.14.1
∗ installed ppx_enumerate.v0.14.0
∗ installed ppx_custom_printf.v0.14.0
∗ installed ppx_compare.v0.14.0
∗ installed ppx_sexp_value.v0.14.0
∗ installed ppx_sexp_message.v0.14.0
∗ installed ppx_hash.v0.14.0
∗ installed ppx_assert.v0.14.0
∗ installed bin_prot.v0.14.0
∗ installed ppx_base.v0.14.0
∗ installed ocamlformat.0.15.0
∗ installed jst-config.v0.14.0
∗ installed ppx_bin_prot.v0.14.0
∗ installed ppx_string.v0.14.1
∗ installed time_now.v0.14.0
∗ installed ppx_module_timer.v0.14.0
∗ installed ppx_inline_test.v0.14.1
∗ installed ppx_bench.v0.14.1
∗ installed ppx_expect.v0.14.0
∗ installed splittable_random.v0.14.0
∗ installed base_quickcheck.v0.14.0
∗ installed ppx_jane.v0.14.0
∗ installed base_bigstring.v0.14.0
∗ installed core_kernel.v0.14.0
∗ installed protocol_version_header.v0.14.0
∗ installed timezone.v0.14.0
∗ installed async_kernel.v0.14.0
∗ installed async_rpc_kernel.v0.14.0
∗ installed core.v0.14.0
∗ installed textutils.v0.14.0
∗ installed async_unix.v0.14.0
∗ installed async.v0.14.0
Done.
Emacs setup:
-
add
$(opam config var share)/emacs/site-lisp
toload-path
(as done byopam user-setup install
) -
add
(require 'ocamlformat)
to.emacs
-
optionally add the following to
.emacs
to bindC-M-<tab>
to the ocamlformat command and install a hook to run ocamlformat when saving:
(add-hook 'tuareg-mode-hook (lambda ()
(define-key tuareg-mode-map (kbd "C-M-<tab>") #'ocamlformat)
(add-hook 'before-save-hook #'ocamlformat-before-save)))
Didn’t work, I had to enable ocamlformat outside of project:
The project root of an input file is taken to be the nearest ancestor directory that contains a .git or .hg or dune-project file. If no config file is found, then the formatting is disabled.
(I often code in random little ocaml files that are not inside a “project” by the above definition).
Within emacs:
- M-x customize-group ocamlformat
- Ocamlformat Enable -> Enable outside detected project -> 1 = Save for Future Sessions
Worked!