(After writing this post I got a message from Clifford Anderson on a completely different way to approach the Marc to XML problem. A very neat way. But, I thought the directions on installing MarcEdit on Ubuntu 16.04 would be helpful anyway. More on Clifford’s suggestion to follow.)
If your just joining, read Black Womxn Authors, Library of Congress and MarcXML (Part 1) for the background on why this flurry of installation is at all meaningful!
The goal is to get a working copy of MarcEdit installed on my Ubuntu 16.04 machine.
MarcEdit Linux Installation Instructions reads in part:
…
Installation Steps:
- Download the MarcEdit app bundle. This file has been zipped to reduce the download size. http://marcedit.reeset.net/software/marcedit.bin.zip
- Unzip the file and open the MarcEdit folder. Find the Install.txt file and read it.
- Ensure that you have the Mono framework installed. What is Mono? Mono is an open source implementation of Microsoft’s .NET framework. The best way to describe it is that .NET is very Java-like; it’s a common runtime that can work across any platform in which the framework has been installed. There are a number of ways to get the Mono framework — for MarcEdit’s purposes, it is recommended that you download and install the official package available from the Mono Project’s website. You can find the Mac OSX download here: http://www.go-mono.com/mono-downloads/download.html
- Run MarEdit via the command-line using mono MarcEdit.exe from within the MarcEdit directory.
…
Well, sort of. đ
First, you need to go to the Mono Project Download page. From there, under Xamarin packages, follow Debian, Ubuntu, and derivatives.
There is a package for Ubuntu 16.10, but it’s Mono 4.2.1. By installing the Xamarin packages, I am running Mono 4.7.0. Your call but as a matter of habit, I run the latest compatible packages.
Updating your package lists for Debian, Ubuntu, and derivatives:
Add the Mono Project GPG signing key and the package repository to your system (if you donât use sudo, be sure to switch to root):
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
echo "deb http://download.mono-project.com/repo/debian wheezy main" | sudo tee /etc/apt/sources.list.d/mono-xamarin.list
And for Ubuntu 16.10:
echo "deb http://download.mono-project.com/repo/debian wheezy-apache24-compat main" | sudo tee -a /etc/apt/sources.list.d/mono-xamarin.list
Now run:
sudo apt-get update
The Usage section suggests:
The package mono-devel should be installed to compile code.
The package mono-complete should be installed to install everything – this should cover most cases of âassembly not foundâ errors.
The package referenceassemblies-pcl should be installed for PCL compilation support – this will resolve most cases of âFramework not installed: .NETPortableâ errors during software compilation.
The package ca-certificates-mono should be installed to get SSL certificates for HTTPS connections. Install this package if you run into trouble making HTTPS connections.
The package mono-xsp4 should be installed for running ASP.NET applications.
Find and select mono-complete first. Most decent package managers will show dependencies that will be installed. Add any of these that were missed.
Do follow the hints here to verify that Mono is working correctly.
Are We There Yet?
Not quite. It was at this point that I unpacked http://marcedit.reeset.net/software/marcedit.bin.zip and discovered there is no “Install.txt file.” Rather there is a linux_install.txt, which reads:
a) Ensure that the dependencies have been installed
1) Dependency list:
i) MONO 3.4+ (Runtime plus the System.Windows.Forms library [these are sometimes separate])
ii) YAZ 5 + YAZ 5 develop Libraries + YAZ++ ZOOM bindings
iii) ZLIBC libraries
iV) libxml2/libxslt libraries
b) Unzip marcedit.zip
c) On first run:
a) mono MarcEdit.exe
b) Preferences tab will open, click on other, and set the following two values:
i) Temp path: /tmp/
ii) MONO path: [to your full mono path]** For Z39.50 Support
d) Yaz.Sharp.dll.config — ensure that the dllmap points to the correct version of the shared libyaz object.
e) main_icon.bmp can be used for a desktop icon
Opps! Without unzipping marcedit.zip, you won’t see the dependencies:
ii) YAZ 5 + YAZ 5 develop Libraries + YAZ++ ZOOM bindings
iii) ZLIBC libraries
iV) libxml2/libxslt libraries
The YAZ site has a readme file for Ubuntu, but here is the very abbreviated version:
wget http://ftp.indexdata.dk/debian/indexdata.asc
sudo apt-key add indexdata.asc
echo "deb http://ftp.indexdata.dk/ubuntu xenial main" | sudo tee -a /etc/apt/sources.list
echo "deb-src http://ftp.indexdata.dk/ubuntu xenial main" | sudo tee -a /etc/apt/sources.list
(That sequence only works for Ubuntu xenial. See the readme file for other versions.)
Of course:
sudo apt-get update
As of of today, you are looking for yaz 5.21.0-1 and libyaz5-dev 5.21.0-1.
Check for and/or install ZLIBC and libxml2/libxslt libraries.
Personal taste but I reboot at this point to make sure all the libraries re-load to the correct versions, etc. Should work without rebooting but that’s up to you.
Fire it up with
mono MarcEdit.ext
Choose Locations (not Other) and confirm “Set Temporary Path:” is /tmp/
and MONO Path (the location of mono, try which mono
, input the results and select OK.
I did the install on Sunday evening and so after all this, the software on loading announces it has been ungraded! Yes, while I was installing all the dependencies, a new and improved version of MarcEdit was posted.
The XML extraction is a piece of cake so I am working on the XQuery on the resulting MarcXML records for part 3.