I recently got a new laptop and decided to move to Manjaro, an Arch Linux derivative. I had some frustration with setting it up, and getting the tools I need to maintain this website installed. Documented below are the steps I took to solve it.
This site is powered by Jekyll, and to maintain it I need to install a couple of ruby packages. I was having a great deal of difficulty figuring out what packages exactly what packages I needed.
Beginning with the first steps, I got ruby gems installed from the official repositories, and installed the bundler plugin via gem. I also added the local ruby gems stuff to my path.
sudo pacman -S rubygems
gem install bundler
export PATH=$PATH:~/.local/share/gem/ruby/3.0.0/bin
I then tried to install my needed jekyll packages via bundle install
.
However I got a lot of errors of the form:
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
current directory: /home/hschmale/myblog/_vendor/bundle/ruby/3.0.0/gems/sqlite3-1.4.2/ext/sqlite3
/usr/bin/ruby -I /usr/lib/ruby/site_ruby/3.0.0 -r ./siteconf20220127-16049-l414ny.rb extconf.rb
checking for sqlite3.h... yes
checking for pthread_create() in -lpthread... yes
checking for -ldl... yes
checking for sqlite3_libversion_number() in -lsqlite3... yes
checking for rb_proc_arity()... yes
checking for rb_integer_pack()... yes
checking for sqlite3_initialize()... yes
checking for sqlite3_backup_init()... yes
checking for sqlite3_column_database_name()... yes
checking for sqlite3_enable_load_extension()... yes
checking for sqlite3_load_extension()... yes
checking for sqlite3_open_v2()... yes
checking for sqlite3_prepare_v2()... yes
checking for sqlite3_int64 in sqlite3.h... yes
checking for sqlite3_uint64 in sqlite3.h... yes
creating Makefile
current directory: /home/hschmale/myblog/_vendor/bundle/ruby/3.0.0/gems/sqlite3-1.4.2/ext/sqlite3
make DESTDIR\= clean
current directory: /home/hschmale/myblog/_vendor/bundle/ruby/3.0.0/gems/sqlite3-1.4.2/ext/sqlite3
make DESTDIR\=
make failedNo such file or directory - make
This error was caused by make not being installed, which I find a little weird because Arch has the AUR, and a lot of those things require make.
There were a couple of other errors but they were resolved via these package installations. I also needed libvips for some image resizing tasks.
sudo pacman -S make patch libvips fakeroot pkgconfig openssl-1.0
I also needed to install a couple other packages for some other parts my build like for the various typescript projects, and things that are deployed to aws. I also have some pytest tools that I use to test that my site hasn’t been broken by environment updates on my shared hosting.
sudo pacman -S nodejs npm python-pip aws-cli
npm install -g typescript
pip3 install pytest boto3
A lot of the little python projects I have here don’t use virtualenvs
cause they don’t have strict dependencies. This experience has also
convinced me to use set -e
at the top of my deploy scripts, so that
the deploy script stops after the missing command.