To install Fossil on Linux, use your distribution’s package manager: sudo apt install fossil (Debian/Ubuntu), sudo dnf install fossil (Fedora), or sudo pacman -S fossil (Arch). If your distro lacks a package, download the official self-contained binary from fossil-scm.org and place it in your PATH.
What Fossil Is and Why It Matters
Fossil is a distributed version control system (DVCS) designed by the creator of SQLite, D. Richard Hipp. Unlike Git, which requires separate tools for issue tracking, wiki, and web hosting, Fossil bundles all of these into a single executable and a single repository file. This makes it especially attractive for small teams, personal projects, and organizations that want a self-contained, low-maintenance setup. Fossil uses SQLite as its storage engine, so every repository is just one file that you can copy, back up, or move with cp.
Fossil also includes a built-in web interface that provides a timeline, ticket system, wiki, and repository browsing. You can enable it with a single command, and it runs over HTTP or HTTPS. This is a major difference from Git, where you typically need to configure a separate server like GitLab or Gitea to get similar functionality.
Installation Methods by Distribution
Most Linux distributions package Fossil, so the easiest route is your package manager. Here are the common commands:
- Debian/Ubuntu:
sudo apt update && sudo apt install fossil - Fedora/RHEL:
sudo dnf install fossil - Arch Linux:
sudo pacman -S fossil - openSUSE:
sudo zypper install fossil - Alpine:
sudo apk add fossil
If your distribution doesn’t have a package, or you need a newer version, download the precompiled binary from the official Fossil website. The download page offers a tarball with a single fossil executable. Extract it, then move it to a directory in your PATH, such as /usr/local/bin. Ensure it has execute permissions: chmod +x fossil. You can verify the installation with fossil version.
Building from Source
Building Fossil from source is straightforward if you have a C compiler and make. First, install the build dependencies. On Debian/Ubuntu, run sudo apt install build-essential tcl. On Fedora, sudo dnf install gcc make tcl. Then download the source tarball from fossil-scm.org, extract it, and run:
./configuremakesudo make install
This compiles Fossil with the default settings, which include the web interface and the built-in SQLite. If you want to enable additional features like HTTPS support, you may need to install OpenSSL development headers and pass --with-openssl to configure. The official documentation lists all compile-time options.
Initial Setup and First Repository
After installation, you can create a new repository and start tracking files. Fossil uses a different workflow than Git: you create a repository file, then open a working checkout. Here’s a basic sequence:
- Create a new repository:
fossil new myproject.fossil - Open a checkout:
mkdir myproject && cd myproject && fossil open ../myproject.fossil - Add files:
fossil add . - Commit changes:
fossil commit -m "Initial commit"
If you’re cloning an existing repository, use fossil clone URL myproject.fossil and then open it. Fossil’s commands are intentionally similar to other VCSs, so users familiar with Git or Mercurial will find the transition easy. The fossil ui command launches the web interface for the current repository, allowing you to browse history, manage tickets, and edit the wiki.
Common Problems and Troubleshooting
One frequent issue is the fossil: command not found error after installation. This usually means the binary isn’t in your PATH. Check where it was installed with which fossil or find /usr -name fossil. If you installed from source, the default prefix is /usr/local, so the binary is likely at /usr/local/bin/fossil. Add that directory to your PATH if it’s missing.
Another issue is permission errors when opening a repository. Fossil stores state in a directory named _FOSSIL_ inside the working checkout. If you see “unable to open” errors, ensure you have read/write permissions for the current directory and the repository file. Also, if you’re using a shared repository over NFS, you may need to set the fossil command to run with appropriate file locking. Fossil is designed to work well on local filesystems; for network shares, consider using the built-in server mode instead.
If the web interface doesn’t load, check that you’ve started it with fossil ui or fossil server and that the port (default 8080) is not blocked by a firewall. You can specify a different port with --port.
Fossil vs. Git: A Practical Comparison
Fossil and Git both handle version control, but they differ in philosophy and feature set. Git is more widely adopted, with a larger ecosystem of hosting services and third-party tools. Fossil, on the other hand, offers an all-in-one solution that includes bug tracking, wiki, and a built-in web server. For a solo developer or a small team that wants minimal setup, Fossil’s single-file repository and integrated tools are a huge advantage.
Git’s branching model is more flexible and powerful, especially for complex workflows with many contributors. Fossil supports branching too, but its model is simpler and often sufficient for smaller projects. If you need to collaborate with people who already use Git, Fossil can import and export Git repositories via fossil import and fossil export, but the process is not as seamless as native Git. For most users, the choice comes down to whether you value simplicity and integration (Fossil) or ecosystem and branching power (Git).
Cost, Licensing, and Support
Fossil is completely free and open source, released under a BSD-style license. There are no paid tiers or subscription fees. The project is actively maintained by the SQLite developers, and the source code is available on the official site. Community support is available through the Fossil forum and mailing list. Because it’s a small project, you won’t find as many tutorials or Stack Overflow answers as you would for Git, but the official documentation is thorough and well-written.
Frequently Asked Questions
How do I uninstall Fossil?
If you installed via a package manager, use the same tool to remove it: sudo apt remove fossil, sudo dnf remove fossil, or sudo pacman -R fossil. If you compiled from source, simply delete the fossil binary (usually in /usr/local/bin) and any related man pages (e.g., /usr/local/share/man/man1/fossil.1).
Can I use Fossil with GitHub or GitLab?
Not directly. Fossil and Git use different protocols and storage formats. You can convert a Fossil repository to Git using fossil export --git and then push to GitHub, but this is a one-time export, not a continuous sync. For ongoing collaboration, you’d need to use Fossil’s own server or a bridge tool.
Does Fossil work on Windows or macOS?
Yes. Fossil is cross-platform and provides official binaries for Windows, macOS, and Linux. The commands are identical across platforms, though the web interface may behave slightly differently depending on the browser. On Windows, you can use it from Command Prompt or PowerShell.
How do I set up a remote Fossil server?
Fossil has a built-in server mode. On the server machine, run fossil server /path/to/repo.fossil --port 8080. Then, from a client, clone it with fossil clone http://server:8080/repo.fossil. For HTTPS, you can put Fossil behind a reverse proxy like nginx or Apache, or compile with SSL support. The official documentation covers server configuration in detail.
Is Fossil suitable for large projects?
Fossil can handle large repositories, but it is optimized for small to medium-sized projects. The SQLite backend means the repository file can grow large, but it remains efficient for most use cases. For very large binary files or massive histories, Git might be a better choice due to its more mature tooling and performance optimizations. However, for typical software projects, Fossil performs well.
Related
General steps for current mainstream versions; menus can differ by device and version. See the disclaimer or report an error.
More in this bed
- Google Chrome Helper: What It Is & How to Disable
- Fix 0x80070422 on Windows Server (Step-by-Step)
- How to Troubleshoot a Malfunctioning Driver on Windows
- How to Create Folders in Microsoft Outlook
- Fix Status Range List Conflict 0xc0000282 in Windows
- Fix Software Not Uninstalling on Windows 10