4.5 Using the Ports Collection
- Remove the whole make deinstall business. Tell people to run pkg_delete directly - Move Ports and Disk Space after Upgrading Ports; count on people installing Portupgrade in Upgrading text, I'm showing some portupgrade utilities there. The section is rewritten anyway. - Start Upgrading text with mention of pkg_version -v - Cut the awfully informal chatter at the beginning of Upgrading text - Reword the rest of Upgrading text, add examples in there - Mention pkgdb -F earlier, kill <note> - Suggest portsclean -C for mass cleaning - Suggest portsclean -D for distfile cleanup - Mention pkg_cutleaves tool
This commit is contained in:
parent
051265d88b
commit
39245f512e
Notes:
svn2git
2020-12-08 03:00:23 +00:00
svn path=/head/; revision=26709
1 changed files with 71 additions and 87 deletions
|
@ -1090,55 +1090,13 @@ ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/ fetch</userinput></screen>
|
||||||
later on decide that you installed the wrong port.
|
later on decide that you installed the wrong port.
|
||||||
We will remove our previous example (which was
|
We will remove our previous example (which was
|
||||||
<command>lsof</command> for
|
<command>lsof</command> for
|
||||||
those of you not paying attention). As with installing ports,
|
those of you not paying attention). Ports are being removed exactly
|
||||||
the first thing you must do is change to the port directory,
|
the same as the packages (discussed in the <link
|
||||||
<filename>/usr/ports/sysutils/lsof</filename>. After you change
|
linkend="packages-using">Packages section</link>), using the
|
||||||
directories, you are ready to uninstall <command>lsof</command>.
|
&man.pkg.delete.1; command:</para>
|
||||||
This is done with
|
|
||||||
the <command>make deinstall</command> command:</para>
|
|
||||||
|
|
||||||
<screen>&prompt.root; <userinput>cd /usr/ports/sysutils/lsof</userinput>
|
<screen>&prompt.root; <userinput>pkg_delete lsof-4.57</userinput></screen>
|
||||||
&prompt.root; <userinput>make deinstall</userinput>
|
|
||||||
===> Deinstalling for lsof-4.57</screen>
|
|
||||||
|
|
||||||
<para>That was easy enough. You have removed
|
|
||||||
<command>lsof</command>
|
|
||||||
from your system. If you would like to reinstall it, you can do
|
|
||||||
so by running <command>make reinstall</command> from the
|
|
||||||
<filename>/usr/ports/sysutils/lsof</filename> directory.</para>
|
|
||||||
|
|
||||||
<para>The <command>make deinstall</command> and <command>make
|
|
||||||
reinstall</command> sequence does not work once you have run
|
|
||||||
<command>make clean</command>. If you want to deinstall a
|
|
||||||
port after cleaning, use &man.pkg.delete.1; as
|
|
||||||
discussed in the <link linkend="packages-using">Packages
|
|
||||||
section of the Handbook</link>.</para>
|
|
||||||
</sect2>
|
|
||||||
|
|
||||||
<sect2 id="ports-disk-space">
|
|
||||||
<title>Ports and Disk Space</title>
|
|
||||||
|
|
||||||
<indexterm>
|
|
||||||
<primary>ports</primary>
|
|
||||||
<secondary>disk-space</secondary>
|
|
||||||
</indexterm>
|
|
||||||
<para>Using the Ports Collection will use up disk
|
|
||||||
space over time. Because of this tendency of the ports tree to grow in size,
|
|
||||||
after building and installing software from the ports,
|
|
||||||
you should always remember to clean up
|
|
||||||
the temporary <filename class="directory">work</filename> directories using the <command>make
|
|
||||||
<makevar>clean</makevar></command> command. This will remove
|
|
||||||
the <filename class="directory">work</filename> directory after a port has been
|
|
||||||
built and installed. You can also remove the source distribution files from
|
|
||||||
the <filename class="directory">distfiles</filename> directory, and remove the
|
|
||||||
installed ports if the need for them has passed.</para>
|
|
||||||
|
|
||||||
<para>Some users choose to limit the available port categories by placing an entry
|
|
||||||
in the <filename>refuse</filename> file. This way, when they run the
|
|
||||||
<application>CVSup</application> application, it will not download the
|
|
||||||
files in that category. More information regarding the
|
|
||||||
<filename>refuse</filename> file can be found in <xref
|
|
||||||
linkend="cvsup-refuse-file">.</para>
|
|
||||||
</sect2>
|
</sect2>
|
||||||
|
|
||||||
<sect2 id="ports-upgrading">
|
<sect2 id="ports-upgrading">
|
||||||
|
@ -1151,6 +1109,11 @@ ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/ fetch</userinput></screen>
|
||||||
<primary>ports</primary>
|
<primary>ports</primary>
|
||||||
<secondary>upgrading</secondary>
|
<secondary>upgrading</secondary>
|
||||||
</indexterm>
|
</indexterm>
|
||||||
|
<para>First, list outdated ports that have a newer version available in
|
||||||
|
the Ports Collection with the &man.pkg.version.1; command:</para>
|
||||||
|
|
||||||
|
<screen>&prompt.root; <userinput>pkg_version -v</userinput></screen>
|
||||||
|
|
||||||
<note>
|
<note>
|
||||||
<para>Once you updated your Ports Collection, before
|
<para>Once you updated your Ports Collection, before
|
||||||
attempting a port upgrade, you should check the
|
attempting a port upgrade, you should check the
|
||||||
|
@ -1159,41 +1122,38 @@ ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/ fetch</userinput></screen>
|
||||||
encounter and need to perform when updating a port.</para>
|
encounter and need to perform when updating a port.</para>
|
||||||
</note>
|
</note>
|
||||||
|
|
||||||
<para>Keeping your ports up to date can be a tedious job. For
|
<para>The <application>portupgrade</application> utility is designed
|
||||||
instance, to upgrade a port you would go to the ports
|
to easily upgrade installed ports. It is available from the <filename
|
||||||
directory, build the port, deinstall the old port, install the
|
role="package">sysutils/portupgrade</filename> port. Install it like
|
||||||
new port, and then clean up after the build. Imagine doing
|
any other port, using the <command>make <makevar>install
|
||||||
that for five ports, tedious right? This was a large problem
|
clean</makevar></command> command:</para>
|
||||||
for system administrators to deal with, and now we have
|
|
||||||
utilities which do this for us. For instance the <filename
|
|
||||||
role="package">sysutils/portupgrade</filename> utility will do
|
|
||||||
everything for you! Just install it like you would any other
|
|
||||||
port, using the <command>make <makevar>install
|
|
||||||
clean</makevar></command> command.</para>
|
|
||||||
|
|
||||||
<para>Now create a database with the <command>pkgdb -F</command>
|
<screen>&prompt.root; <userinput>cd /usr/ports/sysutils/portupgrade</userinput>
|
||||||
command. This will read the list of installed ports and
|
&prompt.root; <userinput>make install clean</userinput></screen>
|
||||||
create a database file in the <filename>/var/db/pkg</filename>
|
|
||||||
directory. Now when you run <command>portupgrade
|
|
||||||
-a</command>, it will read this and the ports
|
|
||||||
<filename>INDEX</filename> file. Finally,
|
|
||||||
<application>portupgrade</application> will begin to download, build,
|
|
||||||
backup, install, and clean the ports which have been updated.
|
|
||||||
<application>portupgrade</application> comes with a lot of options
|
|
||||||
for different use cases, the most important ones will be presented
|
|
||||||
below.</para>
|
|
||||||
|
|
||||||
<para>If you want to upgrade only a certain application, not the
|
<para>Scan the list of installed ports with the <command>pkgdb
|
||||||
complete database, use <command>portupgrade
|
-F</command> command and fix all the inconsistencies it reports. It is
|
||||||
<replaceable>pkgname</replaceable></command>,
|
a good idea to do this regularly, before every upgrade.</para>
|
||||||
include the flags <option>-r</option> if
|
|
||||||
<application>portupgrade</application> should act on all
|
<para>When you run <command>portupgrade -a</command>,
|
||||||
those packages depending on the given package as well, and
|
<application>portupgrade</application> will begin to upgrade all the
|
||||||
<option>-R</option> to act on all packages required by
|
outdated ports installed on your system. Use the <option>-i</option>
|
||||||
the given packages.</para>
|
flag if you want to be asked for confirmation of every individual
|
||||||
|
upgrade.</para>
|
||||||
|
|
||||||
|
<screen>&prompt.root; <userinput>portupgrade -ai</userinput></screen>
|
||||||
|
|
||||||
|
<para>If you want to upgrade only a
|
||||||
|
certain application, not all available ports, use <command>portupgrade
|
||||||
|
<replaceable>pkgname</replaceable></command>. Include the
|
||||||
|
<option>-R</option> flag if <application>portupgrade</application>
|
||||||
|
should first upgrade all the ports required by the given
|
||||||
|
application.</para>
|
||||||
|
|
||||||
|
<screen>&prompt.root; <userinput>portupgrade -R firefox</userinput></screen>
|
||||||
|
|
||||||
<para>To use packages instead of ports for installation, provide
|
<para>To use packages instead of ports for installation, provide
|
||||||
<option>-P</option>. With this option
|
<option>-P</option> flag. With this option
|
||||||
<application>portupgrade</application> searches
|
<application>portupgrade</application> searches
|
||||||
the local directories listed in <envar>PKG_PATH</envar>, or
|
the local directories listed in <envar>PKG_PATH</envar>, or
|
||||||
fetches packages from remote site if it is not found locally.
|
fetches packages from remote site if it is not found locally.
|
||||||
|
@ -1201,24 +1161,48 @@ ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/ fetch</userinput></screen>
|
||||||
<application>portupgrade</application> will use ports.
|
<application>portupgrade</application> will use ports.
|
||||||
To avoid using ports, specify <option>-PP</option>.</para>
|
To avoid using ports, specify <option>-PP</option>.</para>
|
||||||
|
|
||||||
|
<screen>&prompt.root; <userinput>portupgrade -PR gnome2</userinput></screen>
|
||||||
|
|
||||||
<para>To just fetch distfiles (or packages, if
|
<para>To just fetch distfiles (or packages, if
|
||||||
<option>-P</option> is specified) without building or
|
<option>-P</option> is specified) without building or
|
||||||
installing anything, use <option>-F</option>.
|
installing anything, use <option>-F</option>.
|
||||||
For further information see &man.portupgrade.1;.</para>
|
For further information see &man.portupgrade.1;.</para>
|
||||||
|
</sect2>
|
||||||
|
|
||||||
|
<sect2 id="ports-disk-space">
|
||||||
|
<title>Ports and Disk Space</title>
|
||||||
|
|
||||||
|
<indexterm>
|
||||||
|
<primary>ports</primary>
|
||||||
|
<secondary>disk-space</secondary>
|
||||||
|
</indexterm>
|
||||||
|
<para>Using the Ports Collection will use up disk
|
||||||
|
space over time. After building and installing software from the
|
||||||
|
ports, you should always remember to clean up
|
||||||
|
the temporary <filename class="directory">work</filename> directories using the <command>make
|
||||||
|
<makevar>clean</makevar></command> command. You can sweep the whole
|
||||||
|
Ports Collection with the following command:</para>
|
||||||
|
|
||||||
|
<screen>&prompt.root; <userinput>portsclean -C</userinput></screen>
|
||||||
|
|
||||||
|
<para>You will accumulate a lot of old source distribution files in the
|
||||||
|
<filename class="directory">distfiles</filename> directory over time.
|
||||||
|
You can remove them by hand, or you can use the following command to
|
||||||
|
delete all the distfiles that are no longer referenced by any
|
||||||
|
ports:</para>
|
||||||
|
|
||||||
|
<screen>&prompt.root; <userinput>portsclean -D</userinput></screen>
|
||||||
|
|
||||||
<note>
|
<note>
|
||||||
<para>It is important to regularly update the package database using
|
<para>The <command>portsclean</command> utility is part of the
|
||||||
<command>pkgdb -F</command> to fix inconsistencies, especially when
|
<application>portupgrade</application> suite.</para>
|
||||||
<application>portupgrade</application> asks you to. Do not abort
|
|
||||||
<application>portupgrade</application> while it is updating the
|
|
||||||
package database, this will leave you an inconsistent
|
|
||||||
database.</para>
|
|
||||||
</note>
|
</note>
|
||||||
|
|
||||||
<para>Other utilities exist which will do this, check out the
|
<para>Do not forget to remove the installed ports once you no longer need
|
||||||
<filename>ports/sysutils</filename> directory and see what you
|
them. A nice tool to help automate this task is available from the
|
||||||
come up with.</para>
|
<filename role="package">sysutils/pkg_cutleaves</filename> port.</para>
|
||||||
</sect2>
|
</sect2>
|
||||||
|
|
||||||
</sect1>
|
</sect1>
|
||||||
|
|
||||||
<sect1 id="ports-nextsteps">
|
<sect1 id="ports-nextsteps">
|
||||||
|
|
Loading…
Reference in a new issue