Zotero on arm64 Linux or ChromeOS (ARM)?
This post should be seen as a warning to those not using Intel chips. Howvever, you may be able to install zotero - see below
I love my new ARM64 Lenovo Chromebook and basically, everything I use for research/data analysis/music runs on ChromeOS, Android or linux (Debian 64bit) except Zotero, RStudio or Synology Apps. While the initial impression is that 64 bit inux apps are available they aren't. Unfortunately, they simply don't state they MUST be Intel and, while I can easily work around not having RStudio or Synology Apps, I don't want to change my Reference Manager just yet.
Has anyone managed to build Zotero for arm64/arm32 Linux or ARM ChomeOS? Or perhaps someone has run an Intel emulator inside the Linux VM which seems somewhat extreme on a Chromebook but advice is most welcome. So far, I have been unsuccessful with both compilation and emulation.
The Zoo-Zotero Android App looks interesting on the Chromebook but seems much more limited that the usual stand alone Zotero apps
Any ideas? Advice most welcome. Thanks
Cheers Peter
The long version:
I recently got a Lenovo Duet 5 Chromebook which has an ARM64 processor. There are more and more devices coming out with ARM processors but I didn't realise that some of my favourite software, like Zotero, simply isn't available. Much of what I use for research is available but not Zotero. Will it ever be? I'm guessing not.
While ChromeOS is ARM32, it is simple to install Debian 64bit Linux and lots of software is then readily available. Unfortunately, whoever writes the Zotero documentation thinks that Linux, Windows etc is only available for Intel processors. This is very very misleading and really should have a prominent disclaimer that ARM64 is not supported. Using Firefox in arm64 Linux, the Downloads page correctly detected 64 bit Linux and then allowed me to download the Intel version which, of course, doesn't work - the page says 64bit linux not the more informative x86_64 or amd64 linux. It would have saved a lot of time if it properly detected ARM64 and let me know to give up there and then!!
Instead, undeterred, I found the step by step instructions thttps://www.zotero.org/support/dev/client_coding/building_the_standalone_client to build Zotero yourself for Windows, Linux and Mac - not one mention that it only works for Intel. I don't use Debian, nor Javascript, so it took an inordinate amount of googling and installing packages to finally build Zotero without errors. Being an arm64 machine with arm64 javascript, arm64 firefox, arm64 poppler, arm64 pdf-utils etc, it seemed like Zotero would now work. Wrong! Unbelievably, the whole process looked like it had successfully built i686 and x86_64 binaries but probably not. No errors or warnings but I don't think it built everything and it certainly is not useful.
I am no programmer but, being an old guy who has been an amateur programmer for 40 years and my statistical software has been used by many researchers, I will make the observation that it seems extremely weird that the i686/x_86_64 firefox/mozilla libraries are hardwired in to the installation instructions even though there must be alternative architectures available.
Is there any ARM64 solution or something else that will suit an ARM Chromebook?
Any ideas? Advice most welcome. Thanks
Cheers Peter
I love my new ARM64 Lenovo Chromebook and basically, everything I use for research/data analysis/music runs on ChromeOS, Android or linux (Debian 64bit) except Zotero, RStudio or Synology Apps. While the initial impression is that 64 bit inux apps are available they aren't. Unfortunately, they simply don't state they MUST be Intel and, while I can easily work around not having RStudio or Synology Apps, I don't want to change my Reference Manager just yet.
Has anyone managed to build Zotero for arm64/arm32 Linux or ARM ChomeOS? Or perhaps someone has run an Intel emulator inside the Linux VM which seems somewhat extreme on a Chromebook but advice is most welcome. So far, I have been unsuccessful with both compilation and emulation.
The Zoo-Zotero Android App looks interesting on the Chromebook but seems much more limited that the usual stand alone Zotero apps
Any ideas? Advice most welcome. Thanks
Cheers Peter
The long version:
I recently got a Lenovo Duet 5 Chromebook which has an ARM64 processor. There are more and more devices coming out with ARM processors but I didn't realise that some of my favourite software, like Zotero, simply isn't available. Much of what I use for research is available but not Zotero. Will it ever be? I'm guessing not.
While ChromeOS is ARM32, it is simple to install Debian 64bit Linux and lots of software is then readily available. Unfortunately, whoever writes the Zotero documentation thinks that Linux, Windows etc is only available for Intel processors. This is very very misleading and really should have a prominent disclaimer that ARM64 is not supported. Using Firefox in arm64 Linux, the Downloads page correctly detected 64 bit Linux and then allowed me to download the Intel version which, of course, doesn't work - the page says 64bit linux not the more informative x86_64 or amd64 linux. It would have saved a lot of time if it properly detected ARM64 and let me know to give up there and then!!
Instead, undeterred, I found the step by step instructions thttps://www.zotero.org/support/dev/client_coding/building_the_standalone_client to build Zotero yourself for Windows, Linux and Mac - not one mention that it only works for Intel. I don't use Debian, nor Javascript, so it took an inordinate amount of googling and installing packages to finally build Zotero without errors. Being an arm64 machine with arm64 javascript, arm64 firefox, arm64 poppler, arm64 pdf-utils etc, it seemed like Zotero would now work. Wrong! Unbelievably, the whole process looked like it had successfully built i686 and x86_64 binaries but probably not. No errors or warnings but I don't think it built everything and it certainly is not useful.
I am no programmer but, being an old guy who has been an amateur programmer for 40 years and my statistical software has been used by many researchers, I will make the observation that it seems extremely weird that the i686/x_86_64 firefox/mozilla libraries are hardwired in to the installation instructions even though there must be alternative architectures available.
Is there any ARM64 solution or something else that will suit an ARM Chromebook?
Any ideas? Advice most welcome. Thanks
Cheers Peter
Following the thread https://forums.zotero.org/discussion/comment/404396, I downloaded the aarch64 Arch Linux package 'zotero-6.0.4-1-aarch64.pkg.tar.zst' at https://repo.archlinuxcn.org/aarch64/
Next, to decompress the tar file you may need to install 'zstd' with and then uncompress the file with
$ sudo apt install zstd
$ zstd -d zotero-6.0.4-1-aarch64.pkg.tar.zst
Next, convert the tar file to a '.deb' using the alien package
$ sudo alien -vv zotero-6.0.4-1-aarch64.pkg.tar
Which produced ' zotero_6.0.4-2_all.deb'. To install this use:
$ sudo dpkg -i zotero_6.0.4-2_all.deb
Which installed without error. When I ran zotero I got an error message so (by guesswork) I then installed 'libstartup-notification0'. However, I have installed many extra packages trying to get Zotero running in the past so you may find (by guesswork) that you need to install other packages.
$ sudo apt install libstartup-notification0
$ zotero &
runs Zotero although produces a few warning/error messages. When running zotero first time it popped up chrome (under linux not ChromeOS) and asked me to install the connector which seemed to work just fine. The next time I started Zotero, it asked me to install libreoffice connectors.
Note that Zotero runs with quite a few warnings/errors but, in general, seems to working fine, I think that these messages are now fixed by installing 'at-spi2-core' (see https://forums.raspberrypi.com/viewtopic.php?t=196070)
$ sudo apt-get install at-spi2-core
NB: To check the integrity of the downloaded package, I tried to import the correct gpg keys but this is something I don't know much about
gpg --recv-keys --keyserver=hkp://keys.gnupg.net D88390B2991F8242FABD2A3C07F45E2A1937DD32
gpg: /home/pete/.gnupg/trustdb.gpg: trustdb created
gpg: key 07F45E2A1937DD32: public key "Yichao Yu " imported
gpg: Total number processed: 1
gpg: imported: 1
$ gpg --verify zotero-6.0.4-1-aarch64.pkg.tar.zst.sig
gpg: assuming signed data in 'zotero-6.0.4-1-aarch64.pkg.tar.zst'
gpg: Signature made Mon 04 Apr 2022 12:17:18 PM AEST
gpg: using RSA key D88390B2991F8242FABD2A3C07F45E2A1937DD32
gpg: Good signature from "Yichao Yu " [unknown]
gpg: aka "Yichao Yu " [unknown]
gpg: aka "Yichao Yu " [unknown]
gpg: aka "Yichao Yu " [unknown]
gpg: aka "Yichao Yu " [unknown]
gpg: aka "Yichao Yu " [unknown]
gpg: WARNING: This key is not certified with a trusted signature!
gpg: There is no indication that the signature belongs to the owner.
Primary key fingerprint: D883 90B2 991F 8242 FABD 2A3C 07F4 5E2A 1937 DD32
OR
$ gpg --keyserver-options auto-key-retrieve --verify zotero-6.0.4-1-aarch64.pkg.tar.zst.sig
gpg: assuming signed data in 'zotero-6.0.4-1-aarch64.pkg.tar.zst'
gpg: Signature made Mon 04 Apr 2022 12:17:18 PM AEST
gpg: using RSA key D88390B2991F8242FABD2A3C07F45E2A1937DD32
gpg: Good signature from "Yichao Yu " [unknown]
gpg: aka "Yichao Yu " [unknown]
gpg: aka "Yichao Yu " [unknown]
gpg: aka "Yichao Yu " [unknown]
gpg: aka "Yichao Yu " [unknown]
gpg: aka "Yichao Yu " [unknown]
gpg: WARNING: This key is not certified with a trusted signature!
gpg: There is no indication that the signature belongs to the owner.
Primary key fingerprint: D883 90B2 991F 8242 FABD 2A3C 07F4 5E2A 1937 DD32
$ tar --use-compress-program=unzstd -xvf zotero-6.0.18-2-aarch64.pkg.tar.zst
and that created an entire usr hierarchy, with most stuff going into usr/lib. (The compression app zstd will have to be installed, of course.) I didn't want to load all of those files into my actual Ubuntu /usr hierarchy -- I only want stuff installed with the Ubuntu apt package manager going there -- so I simply created a directory /opt/zotero and moved the entire usr hierarchy I'd extracted there. I then created a symlink "zotero" in /usr/local/bin pointing to the zotero executable so that I can start it from the command line:
cd /usr/local/bin
ln -s /opt/zotero/usr/lib/zotero/zotero
I hope this is helpful to someone.
Erik