This is a text-only version of the following page on https://raymii.org: --- Title : Installing PyGopherd on Ubuntu 20.04 Author : Remy van Elst Date : 04-07-2020 URL : https://raymii.org/s/tutorials/Installing_PyGopherd_on_Ubuntu_20.04.html Format : Markdown/HTML --- Ubuntu 20.04 dropped the Pygopherd package. There is no way to install it from the official repositories. In this guide I'll show you two ways to install the version from Ubuntu 18.04, which still works perfectly on 20.04. Either via just downloading the 2 deb packages, or via `apt pinning` from the previous repository. Ubuntu removed the package [as seen here][8] because it's not in the current debian development release, due to debian removing all python 2 packages and their dependencies. IMHO that's stupid, but that is a discussion for another time. The author of Pygopherd in the [bug report says he is working on a python 3 port][9], but as of now it's not in 20.04. Here is a screenshot of the [Castor][4] browser showing my Ubuntu 20.04 server serving gopher pages via pygopherd: ![castor][7]. <p class="ad"> <b>Recently I removed all Google Ads from this site due to their invasive tracking, as well as Google Analytics. Please, if you found this content useful, consider a small donation using any of the options below:</b><br><br> <a href="https://leafnode.nl">I'm developing an open source monitoring app called Leaf Node Monitoring, for windows, linux & android. Go check it out!</a><br><br> <a href="https://github.com/sponsors/RaymiiOrg/">Consider sponsoring me on Github. It means the world to me if you show your appreciation and you'll help pay the server costs.</a><br><br> <a href="https://www.digitalocean.com/?refcode=7435ae6b8212">You can also sponsor me by getting a Digital Ocean VPS. With this referral link you'll get $100 credit for 60 days. </a><br><br> </p> Pygopherd is a gopher server written in python, as the name suggests. I use it to provide this [website over gopher][1] as well as over http. I've even written [a log analyzer to get some statistics][2] for pygopherd. Gopher is a protocol predating 'the web', a simple document (mostly text only) oriented protocol, which has seen a resurgence as of the last years because people are not happy with the current state of 'the web'. See also [Gemini][3]. I recently came across [Castor][4], a graphical client for Gopher and Gemini, for Linux, Windows and Mac OS X. Lynx is nice, but new shiny stuff is also fun to play with. ### .deb packages The easiest one off way is to just grab the `.deb` packages from Ubuntu 18.04, both [pygopherd][5] and [python-simpletal][6]. Download the files from the two links to your server and use the following command to install them: dpkg -i python-simpletal*.deb dpkg -i pygopherd*.deb You might also need python2: apt install python2 apt -f install Start the server up and you're ready to go on port 70: systemctl enable pygopherd systemctl restart pygopherd Since it's just two packages without complicated dependencies this route is fine. If you want to use apt and also receive updates to this package, you might want to consider the next method (pinning). ### apt pinning Apt (the package manager) provides a way to handle multiple repositories that provide the same packages, named pinning. You add all the repositories, the one for the current ubuntu version is the default with the highest priority (all the packages will come from there by default), and all the packages you want from other repositories you add to a configuration file. Lets gets started. Add the Ubuntu 18.04 repositories to your 20.04 `sources.list`: vim /etc/apt/sources.list.d/gopher.list Choose a mirror you like, I used this one close to me. Both our packages are in `universe`, therefore I just add that, not the rest of the repo's: deb http://ams3.clouds.archive.ubuntu.com/ubuntu/ bionic universe deb http://ams3.clouds.archive.ubuntu.com/ubuntu/ bionic-updates universe **Do not apt update yet!**. Add a preferences file in which we tell apt to only install pygopherd from this older repository: vim /etc/apt/preferences.d/gopher.pref Add the following: Package: * Pin: release n=focal Pin-Priority: -10 Package: pygopherd Pin: release n=bionic Pin-Priority: 500 The topmost block tells apt to use the default 20.04 (focal) repositories for all packages, the last blocks tell apt to use the older repository for our specific package. Check that the system does not know about pygoherd yet: apt-cache policy pygopherd Output: N: Unable to locate package pygopherd You can now update the apt cache: apt update Afterwards, check that apt now knows about it in the repo: apt-cache policy pygopherd Output: pygopherd: Installed: (none) Candidate: 2.0.18.5 Version table: 2.0.18.5 500 500 http://ams3.clouds.archive.ubuntu.com/ubuntu bionic/universe amd64 Packages 100 /var/lib/dpkg/status You can now use apt to install pygopherd: apt install pygopherd The python dependency will be installed as well: The following NEW packages will be installed: pygopherd python-simpletal Thats all there is to this method. The advantage is that you use the package manager for everything and also receive updates if they ever arrive. [1]: /s/blog/Site_updates_raymii.org_now_on_gopher.html [2]: /s/software/Simple_pygopherd_log_analyzer.html [3]: https://gemini.circumlunar.space/ [4]: https://git.sr.ht/~julienxx/castor [5]: https://packages.ubuntu.com/bionic/pygopherd [6]: https://packages.ubuntu.com/bionic/python-simpletal [7]: /s/inc/img/castor.png [8]: https://launchpad.net/ubuntu/+source/pygopherd/+publishinghistory [9]: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=937449 --- License: All the text on this website is free as in freedom unless stated otherwise. This means you can use it in any way you want, you can copy it, change it the way you like and republish it, as long as you release the (modified) content under the same license to give others the same freedoms you've got and place my name and a link to this site with the article as source. This site uses Google Analytics for statistics and Google Adwords for advertisements. You are tracked and Google knows everything about you. Use an adblocker like ublock-origin if you don't want it. All the code on this website is licensed under the GNU GPL v3 license unless already licensed under a license which does not allows this form of licensing or if another license is stated on that page / in that software: This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>. Just to be clear, the information on this website is for meant for educational purposes and you use it at your own risk. I do not take responsibility if you screw something up. Use common sense, do not 'rm -rf /' as root for example. If you have any questions then do not hesitate to contact me. See https://raymii.org/s/static/About.html for details.