How to Install Pasty on NixOS Latest

Pasty is a simple, lightweight, and secure paste tool that allows you to quickly share snippets of code or text. In this tutorial, we'll go through the steps to install Pasty from its GitHub repository on NixOS Latest.

Prerequisites

  • A machine running NixOS Latest
  • Basic knowledge of the command line interface

Step 1: Install Git on Your Machine

To download the Pasty repository from GitHub, you'll need Git installed on your machine. You can install Git via the following command:

sudo nix-env -iA nixos.git

Step 2: Clone the Pasty Repository

Next, you'll need to clone the Pasty repository from GitHub using the following command:

git clone https://github.com/lus/pasty.git

Step 3: Create a Pasty NixOS File

Create a default.nix file in the cloned repository's root directory. You can use the following command to create the file:

touch default.nix

Step 4: Add Pasty Configuration to default.nix

Next, open the default.nix file in a text editor and add the following configuration:

with import <nixpkgs> {};

let
  inherit (pkgs) lib;
  inherit (pkgs.python37Packages) buildPythonPackage;
in

buildPythonPackage rec {
  pname = "pasty";
  version = "0.7.2";

  src = fetchFromGitHub {
    owner = "lus";
    repo = "pasty";
    rev = "v${version}";
    sha256 = "0bfc7af1edf92021a8ceb38b29c6beb3330d5693e1aa19e761a70a1aefed7640";
  };

  buildInputs = [ libffi ];

  # Override postInstall to make sure the generated binary is executable
  postInstall = ''
    chmod +x $out/bin/pasty
  '';
}

Save the file and close the text editor.

Step 5: Build and Install Pasty

Use the following command to build and install Pasty:

nix-env -f default.nix -i

Congratulations! You have successfully installed Pasty on NixOS Latest. You can now run Pasty using the pasty command in your terminal.

Conclusion

Pasty is a great tool for quickly sharing code snippets or text with others. By following the steps in this tutorial, you can easily install Pasty on NixOS Latest and start sharing your work with others.