Skip to content

Commit bc6493f

Browse files
LagojaLucilleH
andauthored
add FAQ, non-default packages (#1708)
## Summary Adds an FAQ, and details about non-default packages via Flake Refrences ## How was it tested? Build + preview locally --------- Signed-off-by: John Lago <[email protected]> Co-authored-by: Lucille Hua <[email protected]>
1 parent e89f2a7 commit bc6493f

File tree

4 files changed

+67
-3
lines changed

4 files changed

+67
-3
lines changed

docs/app/devbox.json

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,4 @@
44
"nodejs": "latest"
55
},
66
"shell": {},
7-
"nixpkgs": {
8-
"commit": "f80ac848e3d6f0c12c52758c0f25c10c97ca3b62"
9-
}
107
}

docs/app/docs/faq.md

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
---
2+
title: Frequently Asked Questions
3+
description: Frequently Asked Questions about Devbox
4+
---
5+
6+
This doc contains answers to frequently asked questions about Devbox that are not covered elsewhere in our documentation. If you have a question that isn't covered here, feel free to ask us on our [Discord](https://discord.gg/jetpack-io), or [open an issue](https://github.com/jetpack-io/devbox/issues) on our GitHub repository.
7+
8+
## How does Devbox work?
9+
10+
Devbox generates isolated, reproducible development environments using the [Nix package manager](https://nixos.org/). Devbox uses Nix to install packages, and then creates an isolated shell environment for your project by symlinking the packages you need into your project directory.
11+
12+
## Where does Devbox install my packages?
13+
14+
Devbox and Nix install your packages in the read-only Nix store, usually located at `/nix/store`. Devbox then creates your environment by symlinking the packages you need into the `.devbox` directory in your project.
15+
16+
## How do I clean up unused packages from the Nix Store?
17+
18+
You can use `devbox run -- nix store gc` to automatically clean up packages that are no longer needed for your projects.
19+
20+
## Does Devbox require Docker or Containers to work?
21+
22+
No. Since Devbox uses Nix to install packages and create isolated environments, Docker is not required. If you want to run your Devbox project inside a container, you can generate a Dockerfile or devcontainer.json using the `devbox generate` command.
23+
24+
## What versions of Nix are supported by Devbox?
25+
26+
Devbox requires Nix >= 2.12. If Nix is not present on your machine when you first run Devbox, it will automatically try to install the latest supported version for you.
27+
28+
## Can I use Devbox with NixOS?
29+
30+
Yes! Devbox can be installed on any Linux distribution, including NixOS. You can even install Devbox via Nixpkgs. See the [installation guide](./installing_devbox.mdx) for more details.
31+
32+
## A package I installed is missing header files or libraries I need for development. Where do I find them?
33+
34+
In order to save space, Devbox and Nix only install the required components of packages by default. Development header files and libraries are often installed in a separate output of the package (usually `dev`), which can be installed using [Flake References](./guides/using_flakes.md).
35+
36+
You can learn more about non-default outputs [here](./guides/using_flakes.md#installing-additional-outputs-from-a-flake).
37+
38+
## How can I use custom Nix packages or overrides with Devbox?
39+
40+
You can add customized packages to your Devbox environment using our [Flake support](./guides/using_flakes.md). You can use these flakes to modify or override packages from nixpkgs, or to create your own custom packages.
41+
42+
## Can I use Devbox if I use [Fish](https://fishshell.com/)?
43+
44+
Yes. In addition to supporting POSIX compliant shells like Zsh and Bash, Devbox also works with Fish.
45+
46+
## How can I uninstall Devbox?
47+
48+
To uninstall Devbox:
49+
50+
1. Remove the Devbox launcher using `rm /usr/local/bin/devbox`
51+
2. Remove the Devbox binaries using `rm -rf ~/.cache/devbox`
52+
3. Remove your Devbox global config using `rm -rf .local/share/devbox`
53+
54+
If you want to uninstall Nix, you will need to follow the instructions in the Nix Documentation: https://nixos.org/manual/nix/stable/installation/uninstall.

docs/app/docs/guides/using_flakes.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,16 @@ For example, if you want to install the `hello` package from the `nixos-20.09` b
6565
github:NixOS/nixpkgs/nixos-20.09#hello
6666
```
6767

68+
## Installing Additional Outputs from a Flake
69+
70+
Some packages provide additional outputs that are not installed by default. For example, the `libcap` package provides a `dev` output that contains development headers and libraries, or the `prometheus` package includes the `promtool` CLI in a `cli` output.
71+
72+
You can install these additional outputs by adding a `^` and a comma-separated list of outputs to the end of your flake reference. For example, the following command will install the default (`out`) and `dev` outputs of the `libcap` package:
73+
74+
```nix
75+
github:nixos/nixpkgs#libcap^out,dev
76+
```
77+
6878
## Using a Local Flake
6979

7080
You can also use a local Flake using the `path` attribute in your package list. Using a local flake can be helpful if you want to install your custom packages with Nix, or if you need to modify packages before using them in your Devbox project

docs/app/sidebars.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -142,6 +142,9 @@ const sidebars = {
142142
dirName: 'devbox_examples/stacks'
143143
}]
144144
}]
145+
}, {
146+
type: 'doc',
147+
id: 'faq'
145148
}],
146149
};
147150

0 commit comments

Comments
 (0)