* Updated the quick start section. Use channels instead of
downloading Nix expressions and calling nix-pull. This is so user-friendly that even a Mac user can do it! :-)
This commit is contained in:
		
							parent
							
								
									2b20701f78
								
							
						
					
					
						commit
						371c57d8a7
					
				
					 1 changed files with 74 additions and 96 deletions
				
			
		|  | @ -1,20 +1,15 @@ | ||||||
| <chapter> | <chapter><title>Quick Start</title> | ||||||
|   <title>Quick Start</title> |  | ||||||
| 
 | 
 | ||||||
|   <para> | <para>This chapter is for impatient people who don't like reading | ||||||
|     This chapter is for impatient people who don't like reading | documentation.  For more in-depth information you are kindly referred | ||||||
|     documentation.  For more in-depth information you are kindly | to <xref linkend='chap-installation' /> and <xref | ||||||
|     referred to <xref linkend='chap-installation' /> and <xref | linkend='chap-overview' />.</para> | ||||||
|     linkend='chap-overview' />. |  | ||||||
|   </para> |  | ||||||
| 
 | 
 | ||||||
| <orderedlist> | <orderedlist> | ||||||
| 
 | 
 | ||||||
|     <listitem> | <listitem><para>Download a source tarball or RPM from <ulink | ||||||
|       <para> | url='http://www.cs.uu.nl/groups/ST/Trace/Nix'/>.  Build source | ||||||
|         Download a source tarball or RPM from <ulink | distributions using the regular sequence: | ||||||
|         url='http://www.cs.uu.nl/groups/ST/Trace/Nix'/>. |  | ||||||
|         Build source distributions using the regular sequence: |  | ||||||
|          |          | ||||||
| <screen> | <screen> | ||||||
| $ tar xvfj nix-<replaceable>version</replaceable>.tar.bz2 | $ tar xvfj nix-<replaceable>version</replaceable>.tar.bz2 | ||||||
|  | @ -22,119 +17,102 @@ $ ./configure | ||||||
| $ make | $ make | ||||||
| $ make install <lineannotation>(as root)</lineannotation></screen> | $ make install <lineannotation>(as root)</lineannotation></screen> | ||||||
| 
 | 
 | ||||||
|         This will install Nix in <filename>/nix</filename>.  You | This will install Nix in <filename>/nix</filename>.  You shouldn't | ||||||
|         should also add <filename>/nix/etc/profile.d/nix.sh</filename> | change the prefix if at all possible since that will make it | ||||||
|         to your <filename>~/.bashrc</filename> (or some other login | impossible to use our pre-built components.  Alternatively, you could | ||||||
|         file). | grab an RPM if you're on an RPM-based system.  You should also add | ||||||
|       </para> | <filename>/nix/etc/profile.d/nix.sh</filename> to your | ||||||
|     </listitem> | <filename>~/.bashrc</filename> (or some other login | ||||||
|  | file).</para></listitem> | ||||||
| 
 | 
 | ||||||
|     <listitem> | <listitem><para>Subscribe to the Nix Packages channel. | ||||||
|       <para> |  | ||||||
|         Get some Nix expressions for pre-built packages by downloading |  | ||||||
|         the latest <literal>nixpkgs</literal> distribution (from the |  | ||||||
|         same location), and unpack them. |  | ||||||
| 
 | 
 | ||||||
| <screen> | <screen> | ||||||
| $ wget http://<replaceable>...</replaceable>/nix/nixpkgs-<replaceable>version</replaceable>/nixpkgs-<replaceable>version</replaceable>.tar.bz2 | $ nix-channel --add http://catamaran.labs.cs.uu.nl/dist/nix/channels/nixpkgs-unstable</screen> | ||||||
| $ tar xfj nixpkgs-<replaceable>version</replaceable>.tar.bz2</screen> |  | ||||||
| 
 | 
 | ||||||
|         This will unpack the distribution into a directory | </para></listitem> | ||||||
|         <filename>nixpkgs-<replaceable>version</replaceable>/</filename>. |  | ||||||
|       </para> |  | ||||||
|     </listitem> |  | ||||||
| 
 | 
 | ||||||
|     <listitem> | <listitem><para>Download the latest Nix expressions available in the channel. | ||||||
|       <para> | <screen> | ||||||
|         Pull the Nix cache.  This ensures that when you install | $ nix-channel --update</screen> | ||||||
|         packages they are downloaded in pre-built form from the | 
 | ||||||
|         network, rather than built from source. | Note that this in itself doesn't download any components, it just | ||||||
|  | downloads the Nix expressions that build them and stores them | ||||||
|  | somewhere (under <filename>~/.nix-defexpr</filename>, in case you're | ||||||
|  | curious).  Also, it registers the fact that pre-built binaries are | ||||||
|  | available remotely.</para></listitem> | ||||||
|  | 
 | ||||||
|  | <listitem><para>See what installable components are currently | ||||||
|  | available in the channel: | ||||||
| 
 | 
 | ||||||
| <screen> | <screen> | ||||||
| $ nix-pull http://<replaceable>...</replaceable>/nix/nixpkgs-<replaceable>version</replaceable>/MANIFEST</screen> | $ nix-env -qa | ||||||
| 
 |  | ||||||
|       </para> |  | ||||||
| 
 |  | ||||||
|       <para> |  | ||||||
|         Note that currently we only pre-build for Linux on x86 |  | ||||||
|         platforms. |  | ||||||
|       </para> |  | ||||||
|          |  | ||||||
|     </listitem> |  | ||||||
|          |  | ||||||
|     <listitem> |  | ||||||
|       <para> |  | ||||||
|         See what's available: |  | ||||||
| 
 |  | ||||||
|         <screen> |  | ||||||
| $ nix-env -qaf nixpkgs-<replaceable>version</replaceable>/ |  | ||||||
| MozillaFirebird-0.7 |  | ||||||
| hello-2.1.1 |  | ||||||
| docbook-xml-4.2 | docbook-xml-4.2 | ||||||
|  | firefox-1.0pre-PR-0.10.1 | ||||||
|  | hello-2.1.1 | ||||||
| libxslt-1.1.0 | libxslt-1.1.0 | ||||||
| <replaceable>...</replaceable></screen> | <replaceable>...</replaceable></screen> | ||||||
| 
 | 
 | ||||||
|       </para> | </para></listitem> | ||||||
|     </listitem> |  | ||||||
| 
 | 
 | ||||||
|     <listitem> | <listitem><para>Install some components from the channel: | ||||||
|       <para> |  | ||||||
|         Install some packages: |  | ||||||
|          |          | ||||||
| <screen> | <screen> | ||||||
| $ nix-env -iBf nixpkgs-<replaceable>version</replaceable>/ hello MozillaFirebird <replaceable>...</replaceable> </screen> | $ nix-env -i hello firefox <replaceable>...</replaceable> </screen> | ||||||
| 
 | 
 | ||||||
|       </para> | This should download the pre-built components; it should not build | ||||||
|     </listitem> | them locally (if it does, something went wrong).</para></listitem> | ||||||
| 
 | 
 | ||||||
|     <listitem> | <listitem><para>Test that they work: | ||||||
|       <para> |  | ||||||
|         Test that they work: |  | ||||||
| 
 | 
 | ||||||
| <screen> | <screen> | ||||||
| $ which hello | $ which hello | ||||||
| /home/eelco/.nix-profile/bin/hello | /home/eelco/.nix-profile/bin/hello | ||||||
| $ hello | $ hello | ||||||
| Hello, world! | Hello, world! | ||||||
| $ MozillaFirebird | $ firefox | ||||||
| <lineannotation>(read Slashdot or something)</lineannotation></screen> | <lineannotation>(read Slashdot or something)</lineannotation></screen> | ||||||
| 
 | 
 | ||||||
|       </para> | </para></listitem> | ||||||
|     </listitem> |  | ||||||
|      |      | ||||||
|     <listitem> | <listitem><para>Uninstall a package: | ||||||
|       <para> |  | ||||||
|         Uninstall a package: |  | ||||||
| 
 | 
 | ||||||
| <screen> | <screen> | ||||||
| $ nix-env -e hello</screen> | $ nix-env -e hello</screen> | ||||||
| 
 | 
 | ||||||
|       </para> | </para></listitem> | ||||||
|     </listitem> |  | ||||||
| 
 | 
 | ||||||
|     <listitem> | <listitem><para>To keep up-to-date with the channel, do: | ||||||
|       <para> |  | ||||||
|         If a new release of <literal>nixpkgs</literal> comes along, |  | ||||||
|         you can upgrade all installed packages to the latest versions |  | ||||||
|         by downloading and unpacking the new release and doing: |  | ||||||
| 
 | 
 | ||||||
| <screen> | <screen> | ||||||
| $ nix-env -uBf nixpkgs-<replaceable>version</replaceable>/ '*'</screen> | $ nix-channel --update | ||||||
|  | $ nix-env -u '*'</screen> | ||||||
| 
 | 
 | ||||||
|       </para> | The latter command will upgrade each installed component for which | ||||||
|     </listitem> | there is a <quote>newer</quote> version (as determined by comparing | ||||||
|  | the version numbers).</para></listitem> | ||||||
| 
 | 
 | ||||||
|     <listitem> | <listitem><para>If you're unhappy with the result of a | ||||||
|       <para> | <command>nix-env</command> action (e.g., an upgraded component turned | ||||||
|         You should periodically run the Nix garbage collector to get | out not to work properly), you can go back: | ||||||
|         rid of unused packages, since uninstalls or upgrades don't | 
 | ||||||
|  | <screen> | ||||||
|  | $ nix-env --rollback</screen> | ||||||
|  | 
 | ||||||
|  | </para></listitem> | ||||||
|  | 
 | ||||||
|  | <listitem><para>You should periodically run the Nix garbage collector | ||||||
|  | to get rid of unused packages, since uninstalls or upgrades don't | ||||||
| actual delete them: | actual delete them: | ||||||
| 
 | 
 | ||||||
| <screen> | <screen> | ||||||
|  | $ nix-env --delete-generations old | ||||||
| $ nix-collect-garbage</screen> | $ nix-collect-garbage</screen> | ||||||
| 
 | 
 | ||||||
|       </para> | The first command deletes old <quote>generations</quote> of your | ||||||
|     </listitem> | profile (making rollbacks impossible, but also making the components | ||||||
|  | in those old generations available for garbage collection), while the | ||||||
|  | second command actually deletes them.</para></listitem> | ||||||
| 
 | 
 | ||||||
| </orderedlist> | </orderedlist> | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue