<?xml version="1.0" encoding="ISO-8859-7" standalone="no"?> <!-- Ôï Åã÷åéñßäéï ôïõ FreeBSD: ÅíçìÝñùóç êáé ÁíáâÜèìéóç ôïõ FreeBSD The FreeBSD Greek Documentation Project $FreeBSD$ %SOURCE% en_US.ISO8859-1/books/handbook/cutting-edge/chapter.sgml %SRCID% 38879 --> <chapter id="updating-upgrading"> <chapterinfo> <authorgroup> <author> <firstname>Jim</firstname> <surname>Mock</surname> <contrib>ÁíáäïìÞèçêå, áíáäéïñãáíþèçêå, êáé ôìÞìáôá ôïõ áíáíåþèçêáí áðü ôïí </contrib> </author> <!-- Mar 2000 --> </authorgroup> <authorgroup> <author> <firstname>Jordan</firstname> <surname>Hubbard</surname> <contrib>Áñ÷éêÞ óõíåéóöïñÜ áðü ôïõò </contrib> </author> <author> <firstname>Poul-Henning</firstname> <surname>Kamp</surname> </author> <author> <firstname>John</firstname> <surname>Polstra</surname> </author> <author> <firstname>Nik</firstname> <surname>Clayton</surname> </author> </authorgroup> <!-- with feedback from various others --> </chapterinfo> <title>ÅíçìÝñùóç êáé ÁíáâÜèìéóç ôïõ &os;</title> <sect1 id="updating-upgrading-synopsis"> <title>Óýíïøç</title> <para>Ôï &os; âñßóêåôáé õðü óõíå÷Þ åîÝëéîç ìåôáîý ôùí åðßóçìùí åêäüóåùí ôïõ. Ìåñéêïß Üíèñùðïé ðñïôéìïýí íá ÷ñçóéìïðïéïýí ôéò åðßóçìåò åêäüóåéò, åíþ Üëëïé ðñïôéìïýí íá êñáôïýí ôï óýóôçìá ôïõò åíçìåñùìÝíï ìå ôéò ôåëåõôáßåò åîåëßîåéò. Ùóôüóï, áêüìá êáé ïé åðßóçìåò åêäüóåéò åíçìåñþíïíôáé óõ÷íÜ ìå äéïñèþóåéò êñßóéìùí óöáëìÜôùí êáé áóöáëåßáò. ¼ðïéá Ýêäïóç êáé íá ÷ñçóéìïðïéÞóåôå, ôï &os; ðáñÝ÷åé üëá ôá áðáñáßôçôá åñãáëåßá ãéá íá êñáôÞóåôå ôï óýóôçìá óáò åíçìåñùìÝíï, êáé åðßóçò óáò åðéôñÝðåé íá áíáâáèìéóôåßôå åýêïëá óå êÜðïéá åðüìåíç Ýêäïóç. Ôï êåöÜëáéï áõôü èá óáò âïçèÞóåé íá áðïöáóßóåôå áí èÝëåôå íá ðáñáêïëïõèåßôå ôï óýóôçìá áíÜðôõîçò, Þ áí èá ðñïôéìÞóåôå íá ðáñáìåßíåôå óå ìéá áðü ôéò ðáãéùìÝíåò åêäüóåéò. Èá ðáñïõóéÜóïõìå åðßóçò ôá âáóéêÜ åñãáëåßá ðïõ áðáéôïýíôáé ãéá ôçí åíçìÝñùóç êáé áíáâÜèìéóç ôïõ óõóôÞìáôïò.</para> <para>Áöïý äéáâÜóåôå áõôü ôï êåöÜëáéï, èá îÝñåôå:</para> <itemizedlist> <listitem> <para>Ðïéá âïçèçôéêÜ ðñïãñÜììáôá ìðïñåßôå íá ÷ñçóéìïðïéÞóåôå ãéá íá åíçìåñþóåôå ôï óýóôçìá êáé ôçí ÓõëëïãÞ ôùí Ports.</para> </listitem> <listitem> <para>Ðùò íá äéáôçñåßôå ôï óýóôçìá óáò åíçìåñùìÝíï ìå ôá ðñïãñÜììáôá <application>freebsd-update</application> <application>CVSup</application>, <application>CVS</application>, Þ <application>CTM</application>.</para> </listitem> <listitem> <para>Ðùò íá óõãêñßíåôå ôçí êáôÜóôáóç åíüò åãêáôåóôçìÝíïõ óõóôÞìáôïò, ìå áíáöïñÜ Ýíá ãíùóôü êáé åããõçìÝíá óùóôü óýóôçìá.</para> </listitem> <listitem> <para>Ðùò íá äéáôçñÞóåôå ôçí ôåêìçñßùóç óáò åíçìåñùìÝíç ìÝóù ôïõ <application>CVSup</application> Þ ôùí ports ôçò ôåêìçñßùóçò <!-- êáé ôïõ <application>Docsnap</application>-->.</para> </listitem> <listitem> <para>Ôç äéáöïñÜ ìåôáîý ôùí äýï êëÜäùí ðïõ âñßóêïíôáé óå åîÝëéîç: ôïõ &os.stable; êáé ôïõ &os.current;.</para> </listitem> <listitem> <para>Ðùò íá îáíáöôéÜîåôå êáé íá åðáíåãêáôáóôÞóåôå ïëüêëçñï ôï âáóéêü óýóôçìá ìå ôçí <command>make buildworld</command> (êëð).</para> </listitem> </itemizedlist> <para>Ðñéí äéáâÜóåôå áõôü ôï êåöÜëáéï, èá ðñÝðåé:</para> <itemizedlist> <listitem> <para>Íá ñõèìßóåôå óùóôÜ ôç óýíäåóç óáò óôï äßêôõï (<xref linkend="advanced-networking"/>).</para> </listitem> <listitem> <para>Íá ãíùñßæåôå ðùò íá åãêáôáóôÞóåôå ðñüóèåôï ëïãéóìéêü ôñßôïõ êáôáóêåõáóôÞ (<xref linkend="ports"/>).</para> </listitem> </itemizedlist> <note> <para>Óôï êåöÜëáéï áõôü ãßíåôáé óõ÷íÜ ÷ñÞóç ôçò åíôïëÞò <command>cvsup</command> ãéá ôçí áíÜêôçóç Þ åíçìÝñùóç ôùí áñ÷åßùí ðçãáßïõ êþäéêá ôïõ &os;. Ãéá íá ôçí ÷ñçóéìïðïéÞóåôå, èá ðñÝðåé íá åãêáôáóôÞóåôå Ýíá ðáêÝôï Þ port üðùò ôï <filename role="package">net/cvsup</filename> (áí äåí èÝëåôå íá åãêáôáóôÞóåôå ãñáöéêü ðñüãñáììá <command>cvsup</command>, ìðïñåßôå íá åãêáôáóôÞóåôå ôï port <filename role="package">net/cvsup-without-gui</filename>). Ìðïñåßôå íá áíôéêáôáóôÞóåôå áõôÞ ôçí åíôïëÞ ìå ôçí &man.csup.1; ç ïðïßá áíÞêåé óôï âáóéêü óýóôçìá.</para> </note> </sect1> <sect1 id="updating-upgrading-freebsdupdate"> <sect1info> <authorgroup> <author> <firstname>Tom</firstname> <surname>Rhodes</surname> <contrib>ÃñÜöçêå áðü ôïí </contrib> </author> </authorgroup> <authorgroup> <author> <firstname>Colin</firstname> <surname>Percival</surname> <contrib>Âáóßóôçêå óå óçìåéþóåéò ðïõ ðáñåß÷å ï </contrib> </author> </authorgroup> </sect1info> <title>Åíçìåñþíïíôáò ôï &os;</title> <indexterm><primary>Updating and Upgrading FreeBSD</primary></indexterm> <indexterm> <primary>freebsd-update</primary> <see>updating-upgrading</see> </indexterm> <para>Ç åöáñìïãÞ åíçìåñþóåùí áóöáëåßáò áðïôåëåß Ýíá óçìáíôéêü ôìÞìá ôçò óõíôÞñçóçò ëïãéóìéêïý, åéäéêÜ üôáí ðñüêåéôáé ãéá ôï ëåéôïõñãéêü óýóôçìá. Ãéá ìåãÜëï äéÜóôçìá, ç äéáäéêáóßá áõôÞ äåí Þôáí åýêïëç óôï &os;. ¸ðñåðå íá åöáñìïóôïýí patches óôïí ðçãáßï êþäéêá, íá ãßíåé ìåôáãëþôôéóç ôïõ áðü ôçí áñ÷Þ, êáé íá åãêáôáóôáèïýí îáíÜ ôá íÝá åêôåëÝóéìá.</para> <para>Áõôü äåí åßíáé ðëÝïí áíáãêáßï, êáèþò ôï &os; äéáèÝôåé ôþñá Ýíá âïçèçôéêü ðñüãñáììá, ôï <command>freebsd-update</command>. Ôï ðñüãñáììá ðáñÝ÷åé äýï äéáöïñåôéêÝò ëåéôïõñãßåò. Ç ðñþôç åßíáé ç äõíáôüôçôá äõáäéêÞò (binary) åíçìÝñùóçò ôïõ âáóéêïý óõóôÞìáôïò ìå ôéò ôåëåõôáßåò äéïñèþóåéò áóöÜëåéáò êáé ëáèþí, ÷ùñßò íá ÷ñåéÜæåôáé îáíÜ ìåôáãëþôôéóç êáé åãêáôÜóôáóç. Ç äåýôåñç åßíáé ç äõíáôüôçôá áíáâÜèìéóçò ôïõ óõóôÞìáôïò óå ìéá íÝá ìéêñÞ Þ ìåãÜëç åðßóçìç Ýêäïóç (release).</para> <note> <para>ÄõáäéêÝò äéïñèþóåéò ëáèþí êáé áóöÜëåéáò, äéáôßèåíôáé ãéá üëåò ôéò áñ÷éôåêôïíéêÝò êáé åêäüóåéò ðïõ õðïóôçñßæïíôáé áðü ôçí ïìÜäá áóöÜëåéáò. Ðñéí ðñï÷ùñÞóåôå óôçí áíáâÜèìéóç óå ìéá íÝá Ýêäïóç, èá ðñÝðåé íá äéáâÜóåôå ôéò ó÷åôéêÝò ìå áõôÞí áíáêïéíþóåéò, êáèþò ìðïñåß íá ðåñéÝ÷ïõí óçìáíôéêÝò ðëçñïöïñßåò. Ìðïñåßôå íá äåßôå ôéò áíáêïéíþóåéò åêäüóåùí óôçí ðáñáêÜôù ôïðïèåóßá: <ulink url="http://www.FreeBSD.org/releases/"></ulink>.</para> </note> <para>Áí õðÜñ÷åé êÜðïéï <command>crontab</command> ðïõ ÷ñçóéìïðïéåß ôéò äõíáôüôçôåò ôïõ <command>freebsd-update</command>, èá ðñÝðåé íá áðåíåñãïðïéçèåß ðñéí îåêéíÞóåé ç ðáñáêÜôù äéáäéêáóßá. Ìðïñåßôå íá åãêáôáóôÞóåôå ôçí ôåëåõôáßá Ýêäïóç ôïõ <command>freebsd-update</command> êáôåâÜæïíôáò ôï óõìðéåóìÝíï ðáêÝôï áðü ôï ðáñáðÜíù <acronym>URL</acronym> êáé åêôåëþíôáò ôéò ðáñáêÜôù åíôïëÝò:</para> <screen>&prompt.root; <userinput>gunzip -c freebsd-update-upgrade.tgz | tar xvf -</userinput> &prompt.root; <userinput>mv freebsd-update.sh /usr/sbin/freebsd-update</userinput> &prompt.root; <userinput>mv freebsd-update.conf /etc</userinput></screen> <para>Äåí áðáéôåßôáé íá êáôåâÜóåôå ôçí ôåëåõôáßá Ýêäïóç, áí ÷ñçóéìïðïéåßôå êÜðïéá áðü ôéò ôñÝ÷ïõóåò åêäüóåéò ôïõ &os;.</para> <sect2 id="freebsdupdate-config-file"> <title>Ôï Áñ÷åßï Ñõèìßóåùí</title> <para>ÊÜðïéïé ÷ñÞóôåò ßóùò èÝëïõí íá áëëÜîïõí ôï ðñïåðéëåãìÝíï áñ÷åßï ñõèìßóåùí <filename>/etc/freebsd-update.conf</filename>, þóôå íá Ý÷ïõí êáëýôåñï Ýëåã÷ï ôçò äéáäéêáóßáò. Ïé åðéëïãÝò åßíáé ãåíéêÜ áñêåôÜ êáëÜ ôåêìçñéùìÝíåò, áëëÜ ïé ðáñáêÜôù ßóùò íá ÷ñåéÜæïíôáé êÜðïéåò åðéðëÝïí åðåîçãÞóåéò:</para> <programlisting># Components of the base system which should be kept updated. Components src world kernel</programlisting> <para>ÁõôÞ ç ðáñÜìåôñïò åëÝã÷åé ðïéá ôìÞìáôá ôïõ &os; èá äéáôçñïýíôáé åíçìåñùìÝíá. Ç ðñïåðéëïãÞ åßíáé íá åíçìåñþíåôáé ï ðçãáßïò êþäéêáò, üëï ôï âáóéêü óýóôçìá, êáé ï ðõñÞíáò. Ôá ôìÞìáôá åßíáé ôá ßäéá ðïõ äéáôßèåíôáé êáé êáôÜ ôçí åãêáôÜóôáóç, ãéá ðáñÜäåéãìá áí âÜëåôå ôçí åðéëïãÞ <literal>world/games</literal> èá åãêáèßóôáíôáé åíçìåñþóåéò ãéá ôá ðáé÷íßäéá. Áí âÜëåôå <literal>src/bin</literal> èá åðéôñÝøåôå ôçí åíçìÝñùóç ôïõ ðçãáßïõ êþäéêá ôïõ êáôáëüãïõ <filename class="directory">src/bin</filename>.</para> <para>Ç êáëýôåñç åðéëïãÞ åßíáé íá áöÞóåôå åäþ ôçí ðñïåðéëåãìÝíç ôéìÞ, êáèþò áí ôçí áëëÜîåôå þóôå íá ðåñéÝ÷åé óõãêåêñéìÝíá ìüíï ôìÞìáôá, èá áíáãêáóôåßôå íá áíáöÝñåôå ÷ùñéóôÜ ìÝóá óôï áñ÷åßï ñõèìßóåùí êÜèå ôìÞìá ðïõ èÝëåôå íá åíçìåñþíåôáé. Áõôü ßóùò Ý÷åé êáôáóôñïöéêÜ áðïôåëÝóìáôá, êáèþò åßíáé ðéèáíü ï ðçãáßïò êþäéêáò êáé ôá åêôåëÝóéìá ðñïãñÜììáôá íá ìçí åßíáé ðëÝïí óå óõã÷ñïíéóìü ìåôáîý ôïõò.</para> <programlisting># Paths which start with anything matching an entry in an IgnorePaths # statement will be ignored. IgnorePaths</programlisting> <para>ÐñïóèÝóôå äéáäñïìÝò óå êáôáëüãïõò, üðùò <filename class="directory">/bin</filename> Þ <filename class="directory">/sbin</filename> ãéá íá áöÞóåôå áðåßñá÷ôïõò ôïõò óõãêåêñéìÝíïõò êáôáëüãïõò êáôÜ ôçí äéáäéêáóßá åíçìÝñùóçò. Ç åðéëïãÞ áõôÞ ìðïñåß íá ÷ñçóéìïðïéçèåß ãéá íá áðïôñÝøåé ôï <command>freebsd-update</command> íá ãñÜøåé ðÜíù óå ðéèáíüí äéêÝò óáò ôïðéêÝò áëëáãÝò.</para> <programlisting># Paths which start with anything matching an entry in an UpdateIfUnmodified # statement will only be updated if the contents of the file have not been # modified by the user (unless changes are merged; see below). UpdateIfUnmodified /etc/ /var/ /root/ /.cshrc /.profile</programlisting> <para>Ç åðéëïãÞ áõôÞ èá åíçìåñþóåé ôá áñ÷åßá ñõèìßóåùí óôïõò êáôáëüãïõò ðïõ êáèïñßæïíôáé, ìüíï áí áõôÜ äåí Ý÷ïõí ìåôáâëçèåß áðü ôï ÷ñÞóôç. Áí õðÜñ÷ïõí ôïðéêÝò áëëáãÝò, äåí èá ãßíåé åíçìÝñùóç. ÕðÜñ÷åé ìéá áêüìá åðéëïãÞ, ç <literal>KeepModifiedMetadata</literal>, ç ïðïßá ïäçãåß ôï <command>freebsd-update</command> íá áðïèçêåýóåé ôéò áëëáãÝò ìåôáîý ôùí äýï åêäüóåùí êáôÜ ôç äéÜñêåéá ôçò óõã÷þíåõóçò (merge).</para> <programlisting># When upgrading to a new &os; release, files which match MergeChanges # will have any local changes merged into the version from the new release. MergeChanges /etc/ /var/named/etc/</programlisting> <para>Ðñüêåéôáé ãéá ôç ëßóôá ôùí êáôáëüãùí ðïõ ðåñéÝ÷ïõí áñ÷åßá ñõèìßóåùí, êáé óôá ïðïßá ôï <command>freebsd-update</command> èá åðé÷åéñåß ôçí äéáäéêáóßá óõã÷þíåõóçò áëëáãþí. Ç äéáäéêáóßá óõã÷þíåõóçò ãßíåôáé ìå ìéá óåéñÜ áðü patches ôýðïõ &man.diff.1; ðáñüìïéá ìå ôï &man.mergemaster.8; áëëÜ ìå ëéãüôåñåò åðéëïãÝò. Ïé óõã÷ùíåýóåéò åßôå ãßíïíôáé äåêôÝò, åßôå ðñïêáëïýí ôï Üíïéãìá êÜðïéïõ óõíôÜêôç êåéìÝíïõ, äéáöïñåôéêÜ ç åêôÝëåóç ôïõ <command>freebsd-update</command> áêõñþíåôáé. Áí äåí åßóôå óßãïõñïò, êñáôÞóôå áíôßãñáöï áóöáëåßáò ôïõ êáôáëüãïõ <filename class="directory">/etc</filename> êáé áðëþò äå÷èåßôå ôéò áëëáãÝò. Äåßôå ôï <xref linkend="mergemaster"/> ãéá ðåñéóóüôåñåò ðëçñïöïñßåò ó÷åôéêÜ ìå ôçí åíôïëÞ <command>mergemaster</command>.</para> <programlisting># Directory in which to store downloaded updates and temporary # files used by &os; Update. # WorkDir /var/db/freebsd-update</programlisting> <para>Óôïí êáôÜëïãï áõôü öõëÜóóïíôáé üëá ôá patches êáé ôá ðñïóùñéíÜ áñ÷åßá. Óå ðåñéðôþóåéò üðïõ ï ÷ñÞóôçò åêôåëåß áíáâÜèìéóç óå ìéá íåüôåñç Ýêäïóç ôïõ &os;, èá ðñÝðåé íá äéáèÝôåé ôïõëÜ÷éóôïí Ýíá gigabyte åëåýèåñïõ ÷þñïõ.</para> <programlisting># When upgrading between releases, should the list of Components be # read strictly (StrictComponents yes) or merely as a list of components # which *might* be installed of which &os; Update should figure out # which actually are installed and upgrade those (StrictComponents no)? # StrictComponents no</programlisting> <para>Áí èÝóåôå ôçí ðáñáðÜíù åðéëïãÞ óôï <literal>yes</literal>, ôï <command>freebsd-update</command> èá õðïèÝóåé üôé ç ëßóôá <literal>Components</literal> åßíáé ðëÞñçò êáé äåí èá åðé÷åéñÞóåé íá ðñï÷ùñÞóåé óå áëëáãÝò åêôüò ëßóôáò. ÏõóéáóôéêÜ, ôï <command>freebsd-update</command> èá ðñïóðáèÞóåé íá åíçìåñþóåé êÜèå áñ÷åßï ðïõ áíÞêåé óôç ëßóôá <literal>Components</literal>.</para> </sect2> <sect2 id="freebsdupdate-security-patches"> <title>Patches Ó÷åôéêÜ ìå ôçí ÁóöÜëåéá</title> <para>Ôá patches ðïõ ó÷åôßæïíôáé ìå ôçí áóöÜëåéá, áðïèçêåýïíôáé óå Ýíá áðïìáêñõóìÝíï ìç÷Üíçìá êáé ìðïñïýí íá ìåôáöïñôùèïýí êáé íá åãêáôáóôáèïýí ìå ôçí áêüëïõèç åíôïëÞ:</para> <screen>&prompt.root; <userinput>freebsd-update fetch</userinput> &prompt.root; <userinput>freebsd-update install</userinput></screen> <para>Áí ìå ôçí ðáñáðÜíù åíôïëÞ åãêáôáóôáèïýí åíçìåñþóåéò óôïí ðõñÞíá, èá ÷ñåéáóôåß íá åðáíåêêéíÞóåôå ôï óýóôçìá. Áí üëá ðÜíå êáëÜ, ôï óýóôçìá èá åßíáé ðëÝïí åíçìåñùìÝíï êáé ìðïñåßôå íá åêôåëåßôå ôï <command>freebsd-update</command> áõôüìáôá ìå ôçí âïÞèåéá ôïõ &man.cron.8;. Ìéá áðëÞ êáôá÷þñéóç óôï áñ÷åßï <filename>/etc/crontab</filename> åßíáé åðáñêÞò ãéá áõôü ôï óêïðü:</para> <programlisting>@daily root freebsd-update cron</programlisting> <para>Ç ðáñáðÜíù êáôá÷þñéóç ïñßæåé üôé ôï <command>freebsd-update</command> èá åêôåëåßôáé ìéá öïñÜ ôçí çìÝñá. Ìå ôïí ôñüðï áõôü, êáé üôáí ç åêôÝëåóç åßíáé ìÝóù ôçò åðéëïãÞò <option>cron</option>, ôï <command>freebsd-update</command> áðëþò èá åëÝã÷åé ãéá åíçìåñþóåéò. Áí õðÜñ÷ïõí, ç åöáñìïãÞ èá ôéò êáôåâÜæåé, áëëÜ äåí èá ôéò åãêáèéóôÜ. Èá óôÝëíåé üìùò Ýíá email óôï ÷ñÞóôç <username>root</username> þóôå íá ôéò åãêáôáóôÞóåé ÷åéñïêßíçôá.</para> <para>Áí ïôéäÞðïôå ðÜåé óôñáâÜ, ôï <command>freebsd-update</command> Ý÷åé ôçí éêáíüôçôá íá åðéóôñÝöåé óôçí ðñïçãïýìåíç óôáèåñÞ êáôÜóôáóç, áíáéñþíôáò ôï ôåëåõôáßï óåô áëëáãþí ìå ôçí áêüëïõèç åíôïëÞ:</para> <screen>&prompt.root; <userinput>freebsd-update rollback</userinput></screen> <para>Ìå ôçí ïëïêëÞñùóç ôçò åíôïëÞò, èá ðñÝðåé íá åðáíåêêéíÞóåôå ôï óýóôçìá áí Ý÷ïõí ãßíåé áëëáãÝò óôïí ðõñÞíá Þ óå êÜðïéï áðü ôá áñèñþìáôá ôïõ. Áõôü èá åðéôñÝøåé óôï &os; íá öïñôþóåé ôá íÝá åêôåëÝóéìá óôç ìíÞìç.</para> <para>Ôï âïçèçôéêü ðñüãñáììá <command>freebsd-update</command> ìðïñåß íá åíçìåñþóåé áõôüìáôá ìüíï ôïí ðõñÞíá <filename>GENERIC</filename>. Áí ÷ñçóéìïðïéåßôáé ðñïóáñìïóìÝíïò ðõñÞíáò, èá ðñÝðåé íá ìåôáãëùôôéóôåß îáíÜ, üôáí ôï <command>freebsd-update</command> ôåëåéþóåé ìå ôçí åãêáôÜóôáóç ôùí õðüëïéðùí åíçìåñþóåùí. Ùóôüóï, ôï <command>freebsd-update</command> èá áíé÷íåýóåé êáé èá åíçìåñþóåé ôïí ðõñÞíá <filename>GENERIC</filename> óôï <filename class="directory">/boot/GENERIC</filename> (áí õðÜñ÷åé), áêüìá êáé áí äåí åßíáé ï åíåñãüò ðõñÞíáò ôïõ óõóôÞìáôïò (áõôüò ðïõ åêôåëåßôáé ôç óõãêåêñéìÝíç óôéãìÞ).</para> <note> <para>Åßíáé ãåíéêÜ êáëÞ éäÝá íá Ý÷åôå ðÜíôá Ýíá áíôßãñáöï ôïõ ðõñÞíá <filename>GENERIC</filename> óôïí êáôÜëïãï <filename class="directory">/boot/GENERIC</filename>. Èá óáò âïçèÞóåé óôçí äéÜãíùóç äéÜöïñùí ðñïâëçìÜôùí, êáèþò êáé óôçí áíáâÜèìéóç óå åðüìåíåò åêäüóåéò ôïõ &os;, ìÝóù ôïõ <command>freebsd-update</command>. Ç äéáäéêáóßá áõôÞ ðåñéãñÜöåôáé óôï <xref linkend="freebsdupdate-upgrade"/>.</para> </note> <para>Áí äåí Ý÷ïõí ãßíåé áëëáãÝò óôéò ðñïåðéëåãìÝíåò ñõèìßóåéò óôï áñ÷åßï <filename>/etc/freebsd-update.conf</filename>, ôï <command>freebsd-update</command> èá åãêáôáóôÞóåé ôá áíáíåùìÝíá áñ÷åßá ðçãáßïõ êþäéêá ìáæß ìå ôéò õðüëïéðåò åíçìåñþóåéò. Ìðïñåßôå Ýðåéôá íá ðñï÷ùñÞóåôå óôç ìåôáãëþôôéóç êáé åãêáôÜóôáóç íÝïõ ðñïóáñìïóìÝíïõ ðõñÞíá, ìå ôï óõíÞèç ôñüðï.</para> <note> <para>Ïé åíçìåñþóåéò ðïõ äéáíÝìïíôáé ìÝóù ôïõ <command>freebsd-update</command> äåí ðåñéëáìâÜíïõí ðÜíôïôå áëëáãÝò óôïí ðõñÞíá. Äåí åßíáé áðáñáßôçôï íá åðáíáìåôáãëùôôßóåôå ôïí ðñïóáñìïóìÝíï ðõñÞíá óáò, áí ç åêôÝëåóç ôïõ <command>freebsd-update install</command> äåí åðÝöåñå áëëáãÝò óôá áñ÷åßá ðçãáßïõ êþäéêá ôïõ ðõñÞíá. Ùóôüóï, ôï <command>freebsd-update</command> åíçìåñþíåé ðÜíôïôå ôï áñ÷åßï <filename>/usr/src/sys/conf/newvers.sh</filename>. Ôï áñ÷åßï áõôü ðåñéÝ÷åé ôï ôñÝ÷ïí åðßðåäï åíçìåñþóåùí (patch level) ôï ïðïßï êáé áíáöÝñåôáé ùò áñéèìüò <literal>-p</literal> áðü åíôïëÝò üðùò ç <command>uname -r</command>. Ìåôáãëùôôßæïíôáò îáíÜ ôïí ðñïóáñìïóìÝíï ðõñÞíá óáò (áêüìá êáé áí äåí õðÜñ÷ïõí Üëëåò áëëáãÝò) èá äþóåôå ôç äõíáôüôçôá óôçí &man.uname.1; íá áíáöÝñåé ìå áêñßâåéá ôï åðßðåäï åíçìåñþóåùí. Áõôü ìðïñåß íá åßíáé éäéáßôåñá ÷ñÞóéìï üôáí óõíôçñåßôå ðïëëáðëÜ óõóôÞìáôá, êáèþò óáò åðéôñÝðåé íá áîéïëïãÞóåôå ìå ìéá ìáôéÜ ôé åíçìåñþóåéò Ý÷ïõí åãêáôáóôáèåß óôï êáèÝíá.</para> </note> </sect2> <sect2 id="freebsdupdate-upgrade"> <title>Áíáâáèìßóåéò óå ÌéêñÝò êáé ÌåãÜëåò Åêäüóåéò</title> <para>Ç äéáäéêáóßá áõôÞ èá áðïìáêñýíåé ôá ðáëéÜ áñ÷åßá áíôéêåéìåíéêïý êþäéêá (object files) êáèþò êáé ôéò ðáëéÝò âéâëéïèÞêåò, êÜíïíôáò ôéò ðåñéóóüôåñåò åöáñìïãÝò ôñßôùí êáôáóêåõáóôþí íá ìç ëåéôïõñãïýí. Óáò óõíéóôïýìå åßôå íá áðåãêáôáóôÞóåôå üëá ôá åãêáôåóôçìÝíá ports êáé íá ôá åãêáôáóôÞóåôå îáíÜ, Þ íá ôá áíáâáèìßóåôå áñãüôåñá, ÷ñçóéìïðïéþíôáò ôï âïçèçôéêü ðñüãñáììá <filename role="package">ports-mgmt/portupgrade</filename>. Ïé ðåñéóóüôåñïé ÷ñÞóôåò èá èÝëïõí íá êÜíïõí ìéá äïêéìáóôéêÞ ìåôáãëþôôéóç ÷ñçóéìïðïéþíôáò ôçí áêüëïõèç åíôïëÞ:</para> <screen>&prompt.root; <userinput>portupgrade -af</userinput></screen> <para>Ìå áõôü ôïí ôñüðï åîáóöáëßæåôáé üôé ôá ðÜíôá èá åðáíåãêáôáóôáèïýí óùóôÜ. Óçìåéþóôå üôé áí èÝóåôå ôçí ìåôáâëçôÞ ðåñéâÜëëïíôïò <makevar>BATCH</makevar> óôçí ôéìÞ <literal>yes</literal>, üëåò ïé ðéèáíÝò åñùôÞóåéò ðïõ èá åìöáíéóôïýí êáôÜ ôç äéáäéêáóßá, èá áðáíôçèïýí áõôüìáôá ìå <literal>yes</literal>. ¸ôóé äåí õðÜñ÷åé ðëÝïí áíÜãêç ãéá ðáñÝìâáóç ôïõ ÷ñÞóôç êáôÜ ôç äéÜñêåéá ôçò äéáäéêáóßáò ìåôáãëþôôéóçò.</para> <para>Áí ÷ñçóéìïðïéåßôáé ðñïóáñìïóìÝíïò ðõñÞíáò, ç äéáäéêáóßá áíáâÜèìéóçò åßíáé åëáöñÜ ðéï ðïëýðëïêç. Èá ÷ñåéáóôåßôå Ýíá áíôßãñáöï ôïõ ðõñÞíá <filename>GENERIC</filename> óôïí êáôÜëïãï <filename class="directory">/boot/GENERIC</filename>. Áí äåí õðÜñ÷åé Þäç ï ðõñÞíáò <filename>GENERIC</filename> óôï óýóôçìá óáò, ìðïñåßôå íá ôïí áíáêôÞóåôå ÷ñçóéìïðïéþíôáò ìéá áðü ôéò ðáñáêÜôù ìåèüäïõò:</para> <itemizedlist> <listitem> <para>Áí Ý÷åôå ìåôáãëùôôßóåé ðñïóáñìïóìÝíï ðõñÞíá ìüíï ìéá öïñÜ, ï ðõñÞíáò óôïí êáôÜëïãï <filename class="directory">/boot/kernel.old</filename> åßíáé óôçí ðñáãìáôéêüôçôá ï <filename>GENERIC</filename>. Áðëþò ìåôïíïìÜóôå ôïí êáôÜëïãï óå <filename class="directory">/boot/GENERIC</filename>.</para> </listitem> <listitem> <para>Áí Ý÷åôå öõóéêÞ ðñüóâáóç óôï ìç÷Üíçìá, ìðïñåßôå íá åãêáôáóôÞóåôå Ýíá áíôßãñáöï ôïõ ðõñÞíá <filename>GENERIC</filename> áðü ôï CD-ROM ôçò åãêáôÜóôáóçò. ÔïðïèåôÞóôå ôï CD-ROM óôïí ïäçãü êáé ÷ñçóéìïðïéÞóôå ôéò ðáñáêÜôù åíôïëÝò:</para> <screen>&prompt.root; <userinput>mount /cdrom</userinput> &prompt.root; <userinput>cd /cdrom/<replaceable>X.Y-RELEASE</replaceable>/kernels</userinput> &prompt.root; <userinput>./install.sh GENERIC</userinput></screen> <para>ÁíôéêáôáóôÞóôå ôï <filename class="directory"><replaceable>X.Y-RELEASE</replaceable></filename> ìå ôïõò ðñáãìáôéêïýò áñéèìïýò ôçò Ýêäïóçò ðïõ ÷ñçóéìïðïéåßôå. Ï ðõñÞíáò <filename>GENERIC</filename> èá åãêáôáóôáèåß áðü ðñïåðéëïãÞ óôïí êáôÜëïãï <filename class="directory">/boot/GENERIC</filename>.</para> </listitem> <listitem> <para>Áí äåí Ý÷åôå êÜðïéá áðü ôéò ðáñáðÜíù åðéëïãÝò, ìðïñåßôå íá ìåôáãëùôôßóåôå êáé íá åãêáôáóôÞóåôå ôïí ðõñÞíá <filename>GENERIC</filename> ìÝóù ôïõ ðçãáßïõ êþäéêá:</para> <screen>&prompt.root; <userinput>cd /usr/src/</userinput> &prompt.root; <userinput>env DESTDIR=/boot/GENERIC make kernel</userinput> &prompt.root; <userinput>mv /boot/GENERIC/boot/kernel/* /boot/GENERIC</userinput> &prompt.root; <userinput>rm -rf /boot/GENERIC/boot</userinput></screen> <para>Ãéá íá áíáãíùñéóôåß áõôüò ï ðõñÞíáò ùò <filename>GENERIC</filename> áðü ôï <command>freebsd-update</command>, äåí èá ðñÝðåé íá Ý÷ïõí ãßíåé áëëáãÝò óôï áñ÷åßï ñõèìßóåùí ôïõ <filename>GENERIC</filename>. Óõíßóôáôáé åðßóçò ç ìåôáãëþôôéóç íá ãßíåé ÷ùñßò Üëëåò åîåéäéêåõìÝíåò ñõèìßóåéò (êáôÜ ðñïôßìçóç ìå êåíü ôï <filename>/etc/make.conf</filename>).</para> </listitem> </itemizedlist> <para>Äåí ÷ñåéÜæåôáé ôç äåäïìÝíç óôéãìÞ íá åðáíåêêéíÞóåôå ìå ôïí ðõñÞíá <filename>GENERIC</filename>.</para> <para>Åßíáé äõíáôÝò ïé áíáâáèìßóåéò ôüóï óå ìéêñÝò üóï êáé óå ìåãÜëåò åêäüóåéò, äßíïíôáò óôçí åíôïëÞ <command>freebsd-update</command> ôïí åðéèõìçôü áñéèìü Ýêäïóçò. Ãéá ðáñÜäåéãìá, ç áêüëïõèç åíôïëÞ èá áíáâáèìßóåé ôï óýóôçìá óå &os; 8.1:</para> <screen>&prompt.root; <userinput>freebsd-update -r 8.1-RELEASE upgrade</userinput></screen> <para>ÌåôÜ ôç ëÞøç ôçò åíôïëÞò, ôï <command>freebsd-update</command> èá áîéïëïãÞóåé ôçí êáôÜóôáóç ôïõ óõóôÞìáôïò êáé ôïõ áñ÷åßïõ ñõèìßóåùí ôïõ, óå ìéá áðüðåéñá íá ìáæÝøåé ôéò áðáñáßôçôåò ðëçñïöïñßåò ãéá ôçí áíáâÜèìéóç ôïõ óõóôÞìáôïò. Ïé ðëçñïöïñßåò ðïõ áíé÷íåýèçêáí èá åìöáíéóôïýí óôçí ïèüíç ìå ôç ìïñöÞ ìéáò ëßóôáò åãêáôåóôçìÝíùí ðñïãñáììÜôùí. Ãéá ðáñÜäåéãìá:</para> <screen>Looking up update.FreeBSD.org mirrors... 1 mirrors found. Fetching metadata signature for 8.0-RELEASE from update1.FreeBSD.org... done. Fetching metadata index... done. Inspecting system... done. The following components of FreeBSD seem to be installed: kernel/smp src/base src/bin src/contrib src/crypto src/etc src/games src/gnu src/include src/krb5 src/lib src/libexec src/release src/rescue src/sbin src/secure src/share src/sys src/tools src/ubin src/usbin world/base world/info world/lib32 world/manpages The following components of FreeBSD do not seem to be installed: kernel/generic world/catpages world/dict world/doc world/games world/proflibs Does this look reasonable (y/n)? y</screen> <para>Óôï óçìåßï áõôü, ôï <command>freebsd-update</command> èá êáôåâÜóåé üëá ôá áñ÷åßá ðïõ áðáéôïýíôáé ãéá ôçí áíáâÜèìéóç. Óå ìåñéêÝò ðåñéðôþóåéò, ï ÷ñÞóôçò èá êëçèåß íá áðáíôÞóåé óå åñùôÞóåéò ó÷åôéêÜ ìå ôï ôé èá åãêáôáóôáèåß Þ ðùò ðñÝðåé íá ðñï÷ùñÞóåé ç äéáäéêáóßá.</para> <para>¼ôáí ÷ñçóéìïðïéåßôáé ðñïóáñìïóìÝíïò ðõñÞíáò, ôï ðáñáðÜíù âÞìá èá ðñïêáëÝóåé ôçí åìöÜíéóç ôçò ðáñáêÜôù ðñïåéäïðïßçóçò:</para> <screen>WARNING: This system is running a "<replaceable>MYKERNEL</replaceable>" kernel, which is not a kernel configuration distributed as part of FreeBSD 8.0-RELEASE. This kernel will not be updated: you MUST update the kernel manually before running "/usr/sbin/freebsd-update install"</screen> <para>Ìðïñåßôå íá áãíïÞóåôå áõôÞ ôçí ðñïåéäïðïßçóç. Èá ÷ñçóéìïðïéÞóïõìå ôïí åíçìåñùìÝíï ðõñÞíá <filename>GENERIC</filename> ùò åíäéÜìåóï âÞìá óôç äéáäéêáóßá áíáâÜèìéóçò.</para> <para>Áöïý ìåôáöïñôùèïýí üëá ôá patches óôï ôïðéêü óýóôçìá, èá ãßíåé êáé ç åöáñìïãÞ ôïõò. Ç äéáäéêáóßá áõôÞ ßóùò ðÜñåé ëßãï ÷ñüíï, áíÜëïãá ìå ôçí ôá÷ýôçôá êáé ôï öïñôßï ôïõ ìç÷áíÞìáôïò. ¸ðåéôá èá ãßíåé ç óõã÷þíåõóç ôùí áñ÷åßùí ñõèìßóåùí. Áõôü ôï ìÝñïò ôçò äéáäéêáóßáò áðáéôåß ðáñÝìâáóç ôïõ ÷ñÞóôç, êáèþò óå êÜðïéá áñ÷åßá èá ÷ñåéáóôåß ç óõã÷þíåõóç íá ãßíåé ÷åéñïêßíçôá ìå ôç âïÞèåéá êÜðïéïõ óõíôÜêôç êåéìÝíïõ. Ï ÷ñÞóôçò èá åíçìåñþíåôáé ãéá ôï áðïôÝëåóìá êÜèå åðéôõ÷çìÝíçò óõã÷þíåõóçò êáèþò åîåëßóóåôáé ç äéáäéêáóßá. Óå ðåñßðôùóç áðïôõ÷çìÝíçò óõã÷þíåõóçò (Þ áãíüçóçò ôçò), ç äéáäéêáóßá áíáâÜèìéóçò èá äéáêïðåß. Åíäå÷ïìÝíùò íá èÝëåôå íá êñáôÞóåôå áíôßãñáöï áóöáëåßáò ôïõ êáôáëüãïõ <filename class="directory">/etc</filename> êáé íá óõã÷ùíåýóåôå áñãüôåñá (÷åéñïêßíçôá) êÜðïéá óçìáíôéêÜ áñ÷åßá, üðùò ôï <filename>master.passwd</filename> Þ ôï <filename>group</filename>.</para> <note> <para>Óôï óçìåßï áõôü äåí Ý÷åé ãßíåé áêüìá êáìéÜ áëëáãÞ óôï óýóôçìá, êáèþò üëç ç äéáäéêáóßá ôçò áíáâÜèìéóçò êáé óõã÷þíåõóçò ãßíåôáé óå äéáöïñåôéêü êáôÜëïãï. ¼ôáí åöáñìïóôïýí åðéôõ÷þò üëá ôá patches êáé ïëïêëçñùèåß ìå åðéôõ÷ßá ç äéáäéêáóßá ôçò óõã÷þíåõóçò üëùí ôùí áñ÷åßùí ñýèìéóçò, ï ÷ñÞóôçò èá ðñÝðåé íá åðéâåâáéþóåé ôçí ôåëéêÞ åãêáôÜóôáóç.</para> </note> <para>Ìå ôï ôÝëïò áõôÞò ôç äéáäéêáóßáò, ç áíáâÜèìéóç ìðïñåß íá ïñéóôéêïðïéçèåß óôï äßóêï, ìå ôç ÷ñÞóç ôçò áêüëïõèçò åíôïëÞò:</para> <screen>&prompt.root; <userinput>freebsd-update install</userinput></screen> <para>Óôçí ðñþôç öÜóç, èá áëëá÷èåß ï ðõñÞíáò êáé ôá ó÷åôéêÜ áñèñþìáôá. Óôï óçìåßï áõôü, èá ðñÝðåé íá ãßíåé åðáíåêêßíçóç ôïõ ìç÷áíÞìáôïò. Óå ìç÷Üíçìá ìå ðñïóáñìïóìÝíï ðõñÞíá, ÷ñçóéìïðïéÞóôå ôçí åíôïëÞ &man.nextboot.8; þóôå íá èÝóåôå ôïí ðõñÞíá ãéá ôçí åðüìåíç åêêßíçóç óôïí <filename class="directory">/boot/GENERIC</filename> (ï ïðïßïò Ý÷åé Þäç áíáâáèìéóôåß):</para> <screen>&prompt.root; <userinput>nextboot -k GENERIC</userinput></screen> <warning> <para>Ðñéí åðáíåêêéíÞóåôå ìå ôïí ðõñÞíá <filename>GENERIC</filename>, âåâáéùèåßôå üôé ðåñéÝ÷åé üëá ôá ðñïãñÜììáôá ïäÞãçóçò ðïõ áðáéôïýíôáé ãéá ôçí åðéôõ÷Þ åêêßíçóç ôïõ óõóôÞìáôïò óáò (êáé ôç ëåéôïõñãßá ôïõ äéêôýïõ, áí áíáâáèìßæåôå êÜðïéï áðïìáêñõóìÝíï ìç÷Üíçìá). Åéäéêüôåñá, áí ï ðñïçãïýìåíïò ðñïóáñìïóìÝíïò ðõñÞíáò ðåñéåß÷å ëåéôïõñãßåò ðïõ óõíÞèùò ðáñÝ÷ïíôáé áðü áñèñþìáôá (modules), âåâáéùèåßôå üôé öñïíôßóáôå íá öïñôùèïýí ðñïóùñéíÜ óôïí ðõñÞíá <filename>GENERIC</filename> ÷ñçóéìïðïéþíôáò ôéò äõíáôüôçôåò ôïõ áñ÷åßïõ <filename>/boot/loader.conf</filename>. ºóùò åðßóçò íá èÝëåôå íá áðåíåñãïðïéÞóåôå õðçñåóßåò, ðñïóáñôÞóåéò äßóêùí êáé äéêôýïõ ê.ë.ð. ðïõ äåí åßíáé áðáñáßôçôåò, ìÝ÷ñé ôçí ïëïêëÞñùóç ôçò äéáäéêáóßáò áíáâÜèìéóçò.</para> </warning> <para>Ìðïñåßôå íá ÷ñçóéìïðïéÞóåôå ôçí áêüëïõèç åíôïëÞ ãéá íá åðáíåêêéíÞóåôå ôï ìç÷Üíçìá ìå ôïí íÝï ðõñÞíá:</para> <screen>&prompt.root; <userinput>shutdown -r now</userinput></screen> <para>Ìüëéò ôï óýóôçìá åðáíÝëèåé óå ëåéôïõñãßá, èá ðñÝðåé íá åêôåëÝóåôå îáíÜ ôï <command>freebsd-update</command>. Ç ðñïçãïýìåíç ëåéôïõñãßá Ý÷åé áðïèçêåõèåß, êáé Ýôóé ôï <command>freebsd-update</command> äåí èá îåêéíÞóåé áðü ôçí áñ÷Þ, áëëÜ èá áðïìáêñýíåé üëåò ôéò ðáëéÝò êïéíü÷ñçóôåò âéâëéïèÞêåò êáé ôá áñ÷åßá áíôéêåéìåíéêïý êþäéêá. Ãéá íá óõíå÷ßóåôå óå áõôü ôï óôÜäéï, äþóôå ôçí áêüëïõèç åíôïëÞ:</para> <screen>&prompt.root; <userinput>freebsd-update install</userinput></screen> <note> <para>ÁíÜëïãá ìå ôï áí õðÞñîáí áëëáãÝò óôïõò áñéèìïýò åêäüóåùí ôùí âéâëéïèçêþí, ßóùò íá õðÜñ÷ïõí ìüíï äýï öÜóåéò åãêáôÜóôáóçò áíôß ãéá ôñåéò.</para> </note> <para>¼ëï ôï ëïãéóìéêü ôñßôïõ êáôáóêåõáóôÞ èá ðñÝðåé ôþñá íá ìåôáãëùôôéóôåß êáé íá åðáíåãêáôáóôáèåß áðü ôçí áñ÷Þ. Áõôü áðáéôåßôáé êáèþò ôï åãêáôåóôçìÝíï ëïãéóìéêü ßóùò åîáñôÜôáé áðü âéâëéïèÞêåò ïé ïðïßåò áöáéñÝèçêáí êáôÜ ôç äéáäéêáóßá ôçò áíáâÜèìéóçò. Ìðïñåßôå íá ÷ñçóéìïðïéÞóåôå ôçí åíôïëÞ <filename role="package">ports-mgmt/portupgrade</filename> ãéá íá áõôïìáôïðïéÞóåôå áõôÞ ôç äéáäéêáóßá. Ãéá íá îåêéíÞóåôå, äþóôå ôéò ðáñáêÜôù åíôïëÝò:</para> <screen>&prompt.root; <userinput>portupgrade -f ruby</userinput> &prompt.root; <userinput>rm /var/db/pkg/pkgdb.db</userinput> &prompt.root; <userinput>portupgrade -f ruby18-bdb</userinput> &prompt.root; <userinput>rm /var/db/pkg/pkgdb.db /usr/ports/INDEX-*.db</userinput> &prompt.root; <userinput>portupgrade -af</userinput></screen> <para>Ìüëéò ïëïêëçñùèåß ôï ðáñáðÜíù, ïëïêëçñþóôå ôç äéáäéêáóßá áíáâÜèìéóçò ìå ìéá ôåëåõôáßá êëÞóç ôçò åíôïëÞò <command>freebsd-update</command>. Äþóôå ôçí ðáñáêÜôù åíôïëÞ ãéá íá ïëïêëçñþóåôå ïôéäÞðïôå Ý÷åé áðïìåßíåé óôç äéáäéêáóßá áíáâÜèìéóçò:</para> <screen>&prompt.root; <userinput>freebsd-update install</userinput></screen> <para>Áí ÷ñçóéìïðïéïýóáôå ðñïóùñéíÜ ôïí ðõñÞíá <filename>GENERIC</filename>, áõôÞ åßíáé ç êáôÜëëçëç óôéãìÞ ãéá íá ìåôáãëùôôßóåôå êáé íá åãêáôáóôÞóåôå íÝï ðñïóáñìïóìÝíï ðõñÞíá, ìå ôï óõíÞèç ôñüðï.</para> <para>ÅðáíåêêéíÞóôå ôï ìç÷Üíçìá óáò óôçí íÝá Ýêäïóç ôïõ &os;. Ç äéáäéêáóßá Ý÷åé ïëïêëçñùèåß.</para> </sect2> <sect2 id="freebsdupdate-system-comparison"> <title>Óýãêñéóç ÊáôÜóôáóçò ôïõ ÓõóôÞìáôïò</title> <para>Ôï âïçèçôéêü ðñüãñáììá <command>freebsd-update</command> ìðïñåß íá ÷ñçóéìïðïéçèåß ãéá íá åëÝãîåôå ôçí êáôÜóôáóç ôçò åãêáôåóôçìÝíçò Ýêäïóçò ôïõ &os; óå ó÷Ýóç ìå ìéá ãíùóôÞ êáé óùóôÞ åãêáôÜóôáóç. Ç åðéëïãÞ áõôÞ óõãêñßíåé êáé áîéïëïãåß ôçí ôñÝ÷ïõóá Ýêäïóç ôùí ðñïãñáììÜôùí óõóôÞìáôïò, ôùí âéâëéïèçêþí êáé ôùí áñ÷åßùí ñýèìéóçò. Ãéá íá îåêéíÞóåôå ôç óýãêñéóç, äþóôå ôçí áêüëïõèç åíôïëÞ:</para> <screen>&prompt.root; <userinput>freebsd-update IDS >> outfile.ids</userinput></screen> <warning> <para>Áí êáé ôï üíïìá ôçò åíôïëÞò åßíáé <acronym>IDS</acronym>, äåí èá ðñÝðåé óå êáìéÜ ðåñßðôùóç íá èåùñçèåß õðïêáôÜóôáôï åíüò óõóôÞìáôïò áíß÷íåõóçò åéóâïëÝá (intrusion detection system) üðùò åßíáé ãéá ðáñÜäåéãìá ôï <filename role="package">security/snort</filename>. Êáèþò ôï <command>freebsd-update</command> áðïèçêåýåé ôá äåäïìÝíá ôïõ óôï äßóêï, õðÜñ÷åé ðÜíôá ç ðéèáíüôçôá íá Ý÷åé ãßíåé áëëïßùóç ôïõò. Áí êáé ç ðéèáíüôçôá áõôÞ ìðïñåß íá ìåéùèåß ÷ñçóéìïðïéþíôáò ôç ñýèìéóç <varname>kern.securelevel</varname> êáé áðïèçêåýïíôáò ôá äåäïìÝíá ôçò åíôïëÞò <command>freebsd-update</command> óå Ýíá óýóôçìá áñ÷åßùí ìüíï ãéá áíÜãíùóç, ìéá áêüìá êáëýôåñç ëýóç èá Þôáí íá óõãêñßíåôå ôï óýóôçìá ìå êÜðïéï äßóêï ðïõ èåùñåßôå óßãïõñá áóöáëÞ. Ìðïñåßôå íá ÷ñçóéìïðïéÞóåôå Ýíá äßóêï <acronym>DVD</acronym> Þ Ýíá åîùôåñéêü äßóêï <acronym>USB</acronym> ðïõ öõëÜóóåôå óå áóöáëÞ ôïðïèåóßá.</para> </warning> <para>Èá ãßíåé ôþñá ìéá åðéèåþñçóç ôïõ óõóôÞìáôïò êáé èá åêôõðùèåß ìéá ëßóôá áðü áñ÷åßá êáé ôéìÝò hash ôïõ ôýðïõ &man.sha256.1;, ôüóï ãéá ôï åãêáôåóôçìÝíï üóï êáé ãéá ôï ãíùóôü óýóôçìá. ÅðåéäÞ ðñüêåéôáé ãéá ìåãÜëç ëßóôá, ôçí áíáêáôåõèýíïõìå óôï áñ÷åßï <filename>outfile.ids</filename>. Óôçí ïèüíç ôï êåßìåíï èá êõëïýóå ðïëý ãñÞãïñá, êáé óýíôïìá èá ãÝìéæå ôçí ðñïóùñéíÞ ìíÞìç áðåéêüíéóçò ôçò êïíóüëáò.</para> <para>Ïé ãñáììÝò áõôÝò Ý÷ïõí ãåíéêÜ ìåãÜëï ìÞêïò, áëëÜ åßíáé åýêïëï íá åðåîåñãáóôïýìå ôçí Ýîïäï. Ãéá ðáñÜäåéãìá, ãéá íá äåßôå ìéá ëßóôá üëùí ôùí áñ÷åßùí ðïõ äéáöÝñïõí áðü áõôÜ ôçò åðßóçìçò Ýêäïóçò, äþóôå ôçí áêüëïõèç åíôïëÞ:</para> <screen>&prompt.root; <userinput>cat outfile.ids | awk '{ print $1 }' | more</userinput> /etc/master.passwd /etc/motd /etc/passwd /etc/pf.conf</screen> <para>Ôá ðáñáðÜíù åßíáé ìüíï Ýíá ìÝñïò ôçò åîüäïõ, õðÜñ÷ïõí áêüìá ðïëëÜ äéáöïñåôéêÜ áñ÷åßá. ÊÜðïéá áðü áõôÜ ôá áñ÷åßá åßíáé öõóéïëïãéêü íá Ý÷ïõí ôñïðïðïéçèåß. Ãéá ðáñÜäåéãìá, ôï <filename>/etc/passwd</filename> Ý÷åé ôñïðïðïéçèåß, êáèþò Ý÷ïõí ðñïóôåèåß ÷ñÞóôåò óôï óýóôçìá. Óå ìåñéêÝò ðåñéðôþóåéò, ìðïñåß íá õðÜñ÷ïõí êáé Üëëá áñ÷åßá, üðùò ð.÷. áñèñþìáôá ðõñÞíá ôá ïðïßá äéáöÝñïõí áöïý Ý÷ïõí åíçìåñùèåß ìÝóù ôçò <command>freebsd-update</command>. Ãéá íá åîáéñÝóåôå óõãêåêñéìÝíá áñ÷åßá Þ êáôáëüãïõò, ðñïóèÝóôå ôá óôçí åðéëïãÞ <literal>IDSIgnorePaths</literal> óôï áñ÷åßï ñõèìßóåùí <filename>/etc/freebsd-update.conf</filename>.</para> <para>Åêôüò áðü ôçí ÷ñÞóç ðïõ áíáöÝñáìå ðñïçãïõìÝíùò, ôï óýóôçìá áõôü ìðïñåß íá ÷ñçóéìïðïéçèåß êáé ùò ôìÞìá ìéáò ëåðôïìåñïýò äéáäéêáóßáò áíáâÜèìéóçò.</para> </sect2> </sect1> <sect1 id="updating-upgrading-portsnap"> <sect1info> <authorgroup> <author> <firstname>Tom</firstname> <surname>Rhodes</surname> <contrib>ÃñÜöçêå áðü ôïí </contrib> </author> </authorgroup> <authorgroup> <author> <firstname>Colin</firstname> <surname>Percival</surname> <contrib>ÂáóéóìÝíï óå óçìåéþóåéò ðïõ ðáñåß÷å ï </contrib> </author> </authorgroup> </sect1info> <title>Portsnap: ¸íá Åñãáëåßï ÅíçìÝñùóçò ôçò ÓõëëïãÞò ôùí Ports</title> <indexterm><primary>Updating and Upgrading</primary></indexterm> <indexterm> <primary>Portsnap</primary> <see>Updating and Upgrading</see> </indexterm> <para>Ôï âáóéêü óýóôçìá ôïõ &os; ðåñéëáìâÜíåé åðßóçò Ýíá âïçèçôéêü ðñüãñáììá ãéá ôçí åíçìÝñùóç ôçò ÓõëëïãÞò ôùí Ports. Ðñüêåéôáé ãéá ôï &man.portsnap.8;. ¼ôáí ôï åêôåëÝóåôå, èá óõíäåèåß óå Ýíá áðïìáêñõóìÝíï äéáêïìéóôÞ, èá åðáëçèåýóåé ôï êëåéäß ôïõ ðçãáßïõ êþäéêá, êáé èá êáôåâÜóåé Ýíá íÝï áíôßãñáöï ôçò ÓõëëïãÞò ôùí Ports. Ôï êëåéäß ÷ñçóéìïðïéåßôáé ãéá íá åðáëçèåýóåé ôçí áêåñáéüôçôá üëùí ôùí áñ÷åßùí ðïõ ìåôáöïñôþíïíôáé, åîáóöáëßæïíôáò üôé äåí Ý÷ïõí áëëïéùèåß êáôÜ ôçí ìåôáöïñÜ. Ãéá íá êáôåâÜóåôå ôá ôåëåõôáßá áñ÷åßá ôçò ÓõëëïãÞò ôùí Ports, åêôåëÝóôå ôçí áêüëïõèç åíôïëÞ:</para> <screen>&prompt.root; <userinput>portsnap fetch</userinput> Looking up portsnap.FreeBSD.org mirrors... 9 mirrors found. Fetching snapshot tag from geodns-1.FreeBSD.org... done. Fetching snapshot metadata... done. Updating from Tue May 22 02:12:15 CEST 2012 to Wed May 23 16:28:31 CEST 2012. Fetching 3 metadata patches.. done. Applying metadata patches... done. Fetching 3 metadata files... done. Fetching 90 patches.....10....20....30....40....50....60....70....80....90. done. Applying patches... done. Fetching 133 new ports or files... done.</screen> <para>Ôï ðáñáðÜíù ðáñÜäåéãìá äåß÷íåé üôé ôï &man.portsnap.8; âñÞêå êáé åðáëÞèåõóå áñêåôÜ patches ôá ïðïßá ðñÝðåé íá åöáñìïóôïýí óôï õðÜñ÷ïí äÝíôñï ôùí ports. Áõôü äåß÷íåé åðßóçò üôé ôï ðñüãñáììá Ý÷åé åêôåëåóôåß êáôÜ ôï ðáñåëèüí. Áí áõôÞ Þôáí ç ðñþôç öïñÜ ðïõ åêôåëïýíôáí, èá ãßíïíôáí áðëþò êáôÝâáóìá ôçò óõëëïãÞò.</para> <para>¼ôáí ôï &man.portsnap.8; åêôåëÝóåé åðéôõ÷þò ôç ëåéôïõñãßá <command>fetch</command>, ç ÓõëëïãÞ ôùí Ports êáé ôá áíôßóôïé÷á patches Ý÷ïõí áðïèçêåõèåß óôï ôïðéêü óýóôçìá êáé Ý÷åé ãßíåé ç åðáëÞèåõóç ôïõò. Ôçí ðñþôç öïñÜ ðïõ èá åêôåëÝóåôå ôï <command>portsnap</command>, èá ðñÝðåé íá ÷ñçóéìïðïéÞóåôå ôï <literal>extract</literal> ãéá íá åãêáôáóôÞóåôå ôá åíçìåñùìÝíá áñ÷åßá:</para> <screen>&prompt.root; <userinput>portsnap extract</userinput> /usr/ports/.cvsignore /usr/ports/CHANGES /usr/ports/COPYRIGHT /usr/ports/GIDs /usr/ports/KNOBS /usr/ports/LEGAL /usr/ports/MOVED /usr/ports/Makefile /usr/ports/Mk/bsd.apache.mk /usr/ports/Mk/bsd.autotools.mk /usr/ports/Mk/bsd.cmake.mk <replaceable>...</replaceable></screen> <para>Áí Ý÷åôå Þäç åãêáôåóôçìÝíç ôçí ÓõëëïãÞ ôùí Ports, ÷ñçóéìïðïéÞóôå ôçí åíôïëÞ <command>portsnap update</command> ãéá íá ôçí åíçìÝñùóåôå:</para> <screen>&prompt.root; <userinput>portsnap update</userinput></screen> <para>Ç äéáäéêáóßá Ý÷åé ðëÝïí ïëïêëçñùèåß, êáé ìðïñåßôå íá åãêáôáóôÞóåôå Þ íá áíáâáèìßóåôå åöáñìïãÝò ÷ñçóéìïðïéþíôáò ôçí åíçìåñùìÝíç ÓõëëïãÞ ôùí Ports.</para> <para>Ìðïñåßôå íá åêôåëÝóåôå ôéò äéáäéêáóßåò <literal>fetch</literal> êáé <literal>extract</literal> Þ <literal>update</literal> äéáäï÷éêÜ, üðùò öáßíåôáé óôï ðáñáêÜôù ðáñÜäåéãìá:</para> <screen>&prompt.root; <userinput>portsnap fetch update</userinput></screen> <para>Ç ðáñáðÜíù åíôïëÞ èá êáôåâÜóåé ôçí ôåëåõôáßá Ýêäïóç ôçò ÓõëëïãÞò ôùí Ports êáé èá åíçìåñþóåé ôá ôïðéêÜ áñ÷åßá óáò óôïí êáôÜëïãï <filename class="directory">/usr/ports</filename>.</para> </sect1> <sect1 id="updating-upgrading-documentation"> <title>Åíçìåñþíïíôáò ôçí Ôåêìçñßùóç</title> <indexterm><primary>Updating and Upgrading</primary></indexterm> <indexterm> <primary>Documentation</primary> <see>Updating and Upgrading</see> </indexterm> <para>Åêôüò áðü ôï âáóéêü óýóôçìá êáé ôçí ÓõëëïãÞ ôùí Ports, ç ôåêìçñßùóç áðïôåëåß åðßóçò âáóéêü ôìÞìá åíüò óõóôÞìáôïò &os;. Áí êáé ðÜíôá ìðïñåßôå íá âñåßôå ôçí ðéï ðñüóöáôç ôåêìçñßùóç óôçí <ulink url="http://www.freebsd.org/doc/">äéêôõáêÞ ôïðïèåóßá ôïõ &os;</ulink>, ïñéóìÝíïé ÷ñÞóôåò ßóùò Ý÷ïõí áñãÞ Þ ìç óôáèåñÞ óýíäåóç ìå ôï Äéáäßêôõï. Åõôõ÷þò õðÜñ÷ïõí áñêåôïß ôñüðïé ãéá íá åíçìåñþóåôå ôçí ôåêìçñßùóç ç ïðïßá ðáñÝ÷åôáé ìå êÜèå åðßóçìç Ýêäïóç, äéáôçñþíôáò ôï äéêü óáò ôïðéêü áíôßãñáöï ôçò ðéï ðñüóöáôçò ôåêìçñßùóçò ôïõ &os;.</para> <sect2 id="csup-doc"> <title>×ñçóéìïðïéþíôáò ôï CVSup ãéá ôçí ÅíçìÝñùóç ôçò Ôåêìçñßùóçò</title> <para>Ï ðçãáßïò êþäéêáò êáé ôï åãêáôåóôçìÝíï áíôßãñáöï ôçò ôåêìçñßùóçò ôïõ &os;, ìðïñïýí íá åíçìåñùèïýí ìå ôçí âïÞèåéá ôïõ <application>CVSup</application>, ÷ñçóéìïðïéþíôáò Ýíá ìç÷áíéóìü ðáñüìïéï ìå áõôüí ðïõ ÷ñçóéìïðïéåßôáé óôï âáóéêü óýóôçìá (äåßôå ôï <xref linkend="makeworld"/>). Ç åíüôçôá áõôÞ ðåñéãñÜöåé:</para> <itemizedlist> <listitem> <para>Ðùò íá åãêáôáóôÞóåôå ôá åñãáëåßá ðïõ áðáéôïýíôáé ãéá ôçí ôåêìçñßùóç, ìå ôá ïðïßá ìðïñåßôå íá äçìéïõñãÞóåôå ôçí ôåêìçñßùóç ôïõ &os; îåêéíþíôáò áðü ôïí ðçãáßï ôçò êþäéêá.</para> </listitem> <listitem> <para>Ðùò íá êáôåâÜóåôå Ýíá áíôßãñáöï ôïõ ðçãáßïõ êþäéêá ôçò ôåêìçñßùóçò óôïí êáôÜëïãï <filename class="directory">/usr/doc</filename> ÷ñçóéìïðïéþíôáò ôï <application>CVSup</application>.</para> </listitem> <listitem> <para>Ðùò íá áíáäçìéïõñãÞóåôå ôçí ôåêìçñßùóç ôïõ &os; áðü ôïí ðçãáßï ôçò êþäéêá, êáé íá ôçí åãêáôáóôÞóåôå óôïí êáôÜëïãï <filename class="directory">/usr/share/doc/</filename>.</para> </listitem> </itemizedlist> </sect2> <sect2 id="installing-documentation-toolchain"> <title>Åãêáèéóôþíôáò ôï CVSup êáé ôç ÓåéñÜ Åñãáëåßùí ôçò Ôåêìçñßùóçò</title> <para>Ç áíáäçìéïõñãßá ôçò ôåêìçñßùóçò ôïõ &os; áðü ôïí ðçãáßï êþäéêá, áðáéôåß ìéá ó÷åôéêÜ ìåãÜëç óõëëïãÞ åñãáëåßùí. Ôá åñãáëåßá áõôÜ äåí åßíáé ìÝñïò ôïõ âáóéêïý óõóôÞìáôïò ôïõ &os;, êáèþò ÷ñåéÜæïíôáé áñêåôü ÷þñï óôï äßóêï êáé äåí åßíáé ÷ñÞóéìá óå üëïõò ôïõò ÷ñÞóôåò. Åßíáé ÷ñÞóéìá ìüíï óôïõò ÷ñÞóôåò ðïõ áó÷ïëïýíôáé ìå ôç óõããñáöÞ íÝáò ôåêìçñßùóçò ãéá ôï &os;, Þ ðïõ åíçìåñþíïõí óõ÷íÜ ôçí ôïðéêÞ ôïõò ôåêìçñßùóç ìÝóù ôïõ ðçãáßïõ êþäéêá.</para> <para>¼ëá ôá áðáéôïýìåíá åñãáëåßá äéáôßèåíôáé ìÝóù ôçò ÓõëëïãÞò ôùí Ports. Ôï <filename role="package">textproc/docproj</filename> åßíáé ôï êýñéï port ôï ïðïßï Ý÷åé áíáðôõ÷èåß áðü ôçí ÏìÜäá Ôåêìçñßùóçò ôïõ &os;, ãéá íá âïçèÞóåé óôçí áñ÷éêÞ åãêáôÜóôáóç êáé ôéò ìåëëïíôéêÝò áíáâáèìßóåéò áõôþí ôùí åñãáëåßùí.</para> <note> <para>Áí äåí áðáéôåßôáé ç äçìéïõñãßá ôåêìçñßùóçò óå ìïñöÝò &postscript; Þ PDF, ìðïñåßôå íá åãêáôáóôÞóåôå ôï port <filename role="package">textproc/docproj-nojadetex</filename>. ÁõôÞ ç Ýêäïóç ôùí åñãáëåßùí ðåñéÝ÷åé ôá ðÜíôá åêôüò áðü ôçí ìç÷áíÞ óôïé÷åéïèåóßáò <application>teTeX</application>. Ôï <application>teTeX</application> åßíáé ìéá áñêåôÜ ìåãÜëç óõëëïãÞ åñãáëåßùí, êáé äåí Ý÷åé íüçìá íá ôï åãêáôáóôÞóåôå áí äåí óáò åßíáé áðáñáßôçôç ç ðáñáãùãÞ ôçò ôåêìçñßùóçò óå ìïñöÞ PDF.</para> </note> <para>Ãéá ðåñéóóüôåñåò ðëçñïöïñßåò ó÷åôéêÜ ìå ôçí åãêáôÜóôáóç êáé ÷ñÞóç ôïõ <application>CVSup</application>, äåßôå ôçí åíüôçôá <link linkend="cvsup">×ñçóéìïðïéþíôáò ôï CVSup</link>.</para> </sect2> <sect2 id="updating-documentation-sources"> <title>Åíçìåñþíïíôáò ôïí Ðçãáßï Êþäéêá ôçò Ôåêìçñßùóçò</title> <para>Ôï âïçèçôéêü ðñüãñáììá <application>CVSup</application> ìðïñåß íá êáôåâÜóåé Ýíá êáèáñü áíôßãñáöï ôïõ ðçãáßïõ êþäéêá ôçò ôåêìçñßùóçò, ÷ñçóéìïðïéþíôáò ôï <filename>/usr/share/examples/cvsup/doc-supfile</filename> ùò ðñüôõðï áñ÷åßï ñõèìßóåùí. Ï ðñïåðéëåãìÝíïò õðïëïãéóôÞò åíçìåñþóåùí óôï ðáñáðÜíù áñ÷åßï åßíáé ñõèìéóìÝíïò óå ðëáóìáôéêÞ ôéìÞ. Ùóôüóï, ç &man.cvsup.1; äÝ÷åôáé üíïìá õðïëïãéóôÞ ìÝóù ôçò ãñáììÞò åíôïëþí, Ýôóé ìðïñåßôå íá áíáêôÞóåôå ôïí ðçãáßï êþäéêá ôçò ôåêìçñßùóçò ìÝóù êÜðïéïõ åîõðçñåôçôÞ <application>CVSup</application> ãñÜöïíôáò:</para> <screen>&prompt.root; <userinput>cvsup -h <replaceable>cvsup.FreeBSD.org</replaceable> -g -L 2 <filename>/usr/share/examples/cvsup/doc-supfile</filename></userinput></screen> <para>ÁëëÜîôå ôï <replaceable>cvsup.FreeBSD.org</replaceable> ìå ôïí êïíôéíüôåñï óáò åîõðçñåôçôÞ <application>CVSup</application>. Äåßôå ôï <xref linkend="cvsup-mirrors"/> ãéá ìéá ðëÞñç ëßóôá ôùí mirror sites.</para> <para>Ôï áñ÷éêü êáôÝâáóìá ôïõ ðçãáßïõ êþäéêá ôçò ôåêìçñßùóçò ìðïñåß íá äéáñêÝóåé áñêåôÞ þñá. ÁöÞóôå ôï íá åêôåëåßôáé ìÝ÷ñé íá ïëïêëçñùèåß.</para> <para>Ìðïñåßôå íá óõíå÷ßóåôå íá åíçìåñþíåôå ôïí ðçãáßï êþäéêá ôçò ôåêìçñßùóçò ÷ñçóéìïðïéþíôáò ôçí ßäéá åíôïëÞ. Ôï âïçèçôéêü ðñüãñáììá <application>CVSup</application> êáôåâÜæåé êáé áíôéãñÜöåé ìüíï ôéò åíçìåñþóåéò óå ó÷Ýóç ìå ôçí ôåëåõôáßá åêôÝëåóç ôïõ, Ýôóé êÜèå åêôÝëåóç ôïõ <application>CVSup</application> ìåôÜ ôçí ðñþôç èá ðñÝðåé íá åßíáé áñêåôÜ ãñÞãïñç.</para> <para>ÌåôÜ ôçí áñ÷éêÞ áíÜêôçóç ôïõ ðçãáßïõ êþäéêá, Ýíáò åíáëëáêôéêüò ôñüðïò åíçìÝñùóçò ôçò ôåêìçñßùóçò åßíáé ìÝóù ôïõ áñ÷åßïõ <filename>Makefile</filename> óôïí êáôÜëïãï <filename class="directory">/usr/doc</filename>. ÈÝôïíôáò ôéò ìåôáâëçôÝò <makevar>SUP_UPDATE</makevar>, <makevar>SUPHOST</makevar> êáé <makevar>DOCSUPFILE</makevar> óôï áñ÷åßï <filename>/etc/make.conf</filename>, ìðïñåßôå íá åêôåëÝóåôå:</para> <screen>&prompt.root; <userinput>cd /usr/doc</userinput> &prompt.root; <userinput>make update</userinput></screen> <para>ÔõðéêÝò ôéìÝò ãéá ôéò ðáñáðÜíù åðéëïãÝò ôïõ &man.make.1; óôï áñ÷åßï <filename>/etc/make.conf</filename> åßíáé:</para> <programlisting>SUP_UPDATE= yes SUPHOST?= cvsup.freebsd.org DOCSUPFILE?= /usr/share/examples/cvsup/doc-supfile</programlisting> <note> <para>Áí èÝóåôå ôéò ôéìÝò ôùí <makevar>SUPHOST</makevar> êáé <makevar>DOCSUPFILE</makevar> óå <literal>?=</literal>, èá ìðïñåßôå íá ïñßóåôå Üëëåò ôéìÝò ãéá áõôÝò óôç ãñáììÞ åíôïëÞò ôïõ make. Áõôüò åßíáé êáé ï óõíéóôþìåíïò ôñüðïò íá ðñïóèÝóåôå åðéëïãÝò óôï <filename>make.conf</filename>, þóôå íá áðïöåýãåôå íá ôñïðïðïéåßôå óõíÝ÷åéá ôï áñ÷åßï êÜèå öïñÜ ðïõ èÝëåôå íá äïêéìÜóåôå ìéá íÝá ôéìÞ óå ìéá åðéëïãÞ.</para> </note> </sect2> <sect2 id="updating-documentation-options"> <title>ÐñïóáñìïãÞ Åðéëïãþí óôïí Ðçãáßï Êþäéêá ôçò Ôåêìçñßùóçò</title> <para>Ôï óýóôçìá åíçìÝñùóçò êáé ìåôáãëþôôéóçò ôçò ôåêìçñßùóçò ôïõ &os;, õðïóôçñßæåé ìåñéêÝò åðéëïãÝò ðïõ äéåõêïëýíïõí ôç äéáäéêáóßá åíçìÝñùóçò åíüò ìüíï ìÝñïõò ôçò ôåêìçñßùóçò, Þ ôçí ìåôáãëþôôéóç ôçò ôåêìçñßùóçò êÜðïéùí óõãêåêñéìÝíùí ìåôáöñÜóåùí. Áí èÝëåôå ïé åðéëïãÝò áõôÝò íá éó÷ýïõí ìüíéìá, ìðïñåßôå íá ôéò ïñßóåôå ìÝóá óôï áñ÷åßï <filename>/etc/make.conf</filename>, äéáöïñåôéêÜ ìðïñåßôå íá ôéò ïñßæåôå êÜèå öïñÜ óôç ãñáììÞ åíôïëÞò ôçò &man.make.1;.</para> <para>ÊÜðïéåò áðü ôéò åðéëïãÝò áõôÝò öáßíïíôáé ðáñáêÜôù:</para> <variablelist> <varlistentry> <term><makevar>DOC_LANG</makevar></term> <listitem> <para>Ëßóôá ôùí ãëùóóþí êáé êùäéêïðïéÞóåùí ðïõ èá ìåôáãëùôôéóôïýí êáé èá åãêáôáóôáèïýí, ð.÷. <literal>en_US.ISO8859-1</literal> áí åßíáé åðéèõìçôÞ ìüíï ç ÁããëéêÞ ôåêìçñßùóç.</para> </listitem> </varlistentry> <varlistentry> <term><makevar>FORMATS</makevar></term> <listitem> <para>Ç ìïñöÞ (Þ ìéá ëßóôá áðü ìïñöÝò) óôçí ïðïßá èá ðáñá÷èåß ç ìåôáãëùôôéóìÝíç ôåêìçñßùóç. Ôç äåäïìÝíç óôéãìÞ õðïóôçñßæïíôáé ïé ìïñöÝò <literal>html</literal>, <literal>html-split</literal>, <literal>txt</literal>, <literal>ps</literal>, <literal>pdf</literal> êáé <literal>rtf</literal>.</para> </listitem> </varlistentry> <varlistentry> <term><makevar>SUPHOST</makevar></term> <listitem> <para>Ôï üíïìá ôïõ åîõðçñåôçôÞ <application>CVSup</application> ðïõ èá ÷ñçóéìïðïéçèåß êáôÜ ôçí åíçìÝñùóç.</para> </listitem> </varlistentry> <varlistentry> <term><makevar>DOCDIR</makevar></term> <listitem> <para>Ï êáôÜëïãïò óôïí ïðïßï èá åãêáôáóôáèåß ç ôåêìçñßùóç. Áðü ðñïåðéëïãÞ åßíáé ï <filename class="directory">/usr/share/doc</filename>.</para> </listitem> </varlistentry> </variablelist> <para>Ãéá ðåñéóóüôåñåò ðëçñïöïñßåò ó÷åôéêÜ ìå ôéò ìåôáâëçôÝò ôïõ make ðïõ õðïóôçñßæïíôáé ùò åðéëïãÝò óõóôÞìáôïò óôï &os;, äåßôå ôçí óåëßäá manual ôïõ &man.make.conf.5;.</para> <para>Ãéá ðåñéóóüôåñåò ðëçñïöïñßåò êáé ìåôáâëçôÝò make ðïõ õðïóôçñßæïíôáé áðü ôï óýóôçìá ìåôáãëþôôéóçò ôçò ôåêìçñßùóçò ôïõ &os;, ðáñáêáëïýìå äåßôå ôéò <ulink url="&url.doc.langbase.en;/books/fdp-primer">Ïäçãßåò ôçò ÏìÜäáò Ôåêìçñßùóçò ôïõ &os; ãéá ÍÝïõò Óõããñáöåßò</ulink>.</para> </sect2> <sect2 id="updating-installed-documentation"> <title>ÅãêáôÜóôáóç ôçò Ôåêìçñßùóçò ôïõ FreeBSD áðü ôïí Ðçãáßï Êþäéêá</title> <para>¸÷ïíôáò åíçìåñþóåé ôï ôïðéêü áíôßãñáöï ôïõ ðçãáßïõ êþäéêá ôçò ôåêìçñßùóçò óôïí êáôÜëïãï <filename class="directory">/usr/doc</filename>, åßìáóôå Ýôïéìïé ãéá ôçí åíçìÝñùóç ôçò åãêáôåóôçìÝíçò ôåêìçñßùóçò.</para> <para>Ìðïñåßôå íá ðñï÷ùñÞóåôå óå ðëÞñç åíçìÝñùóç üëùí ôùí ãëùóóþí ðïõ ïñßæïíôáé óôçí åðéëïãÞ <makevar>DOC_LANG</makevar> ôïõ Makefile, ãñÜöïíôáò:</para> <screen>&prompt.root; <userinput>cd /usr/doc</userinput> &prompt.root; <userinput>make install clean</userinput></screen> <para>Áí Ý÷åôå ñõèìßóåé ôï <filename>make.conf</filename> ìå ôéò óùóôÝò ôéìÝò ãéá ôéò åðéëïãÝò <makevar>DOCSUPFILE</makevar>, <makevar>SUPHOST</makevar> êáé <makevar>SUP_UPDATE</makevar>, ìðïñåßôå íá óõíäõÜóåôå ôá âÞìáôá åíçìÝñùóçò êáé åãêáôÜóôáóçò ôïõ ðçãáßïõ êþäéêá óå Ýíá, ãñÜöïíôáò:</para> <screen>&prompt.root; <userinput>cd /usr/doc</userinput> &prompt.root; <userinput>make update install clean</userinput></screen> <para>Áí åðéèõìåßôå ôçí åíçìÝñùóç ìéáò ìüíï óõãêåêñéìÝíçò ãëþóóáò, ìðïñåßôå íá êáëÝóåôå ôçí &man.make.1; óå Ýíá óõãêåêñéìÝíï õðïêáôÜëïãï ôïõ <filename class="directory">/usr/doc</filename>, ð.÷.:</para> <screen>&prompt.root; <userinput>cd /usr/doc/en_US.ISO8859-1</userinput> &prompt.root; <userinput>make update install clean</userinput></screen> <para>Ìðïñåßôå íá êáèïñßóåôå ôç ìïñöÞ ôçò ôåêìçñßùóçò ðïõ èá åãêáôáóôáèåß, ñõèìßæïíôáò ôç ìåôáâëçôÞ <makevar>FORMATS</makevar> ôïõ make, ð.÷.:</para> <screen>&prompt.root; <userinput>cd /usr/doc</userinput> &prompt.root; <userinput>make FORMATS='html html-split' install clean</userinput></screen> </sect2> <sect2 id="doc-ports"> <sect2info> <authorgroup> <author> <firstname>Marc</firstname> <surname>Fonvieille</surname> <contrib>ÂáóéóìÝíï óå åñãáóßá ôïõ </contrib> </author> </authorgroup> </sect2info> <title>×ñçóéìïðïéþíôáò ôá Ports ôçò Ôåêìçñßùóçò</title> <indexterm><primary>Updating and Upgrading</primary></indexterm> <indexterm> <primary>documentation package</primary> <see>Updating and Upgrading</see> </indexterm> <para>Óôçí ðñïçãïýìåíç åíüôçôá, ðáñïõóéÜóáìå ìéá ìÝèïäï ãéá ôçí åíçìÝñùóç ôçò ôåêìçñßùóçò ôïõ &os; ìÝóù ôïõ ðçãáßïõ êþäéêá. Ùóôüóï, ïé åíçìåñþóåéò ðïõ âáóßæïíôáé óôïí ðçãáßï êþäéêá ìðïñåß íá ìçí åßíáé äõíáôÝò Þ ðñáêôéêÝò ãéá êÜèå óýóôçìá &os;. Ç äéáäéêáóßá ìåôáãëþôôéóçò ôïõ ðçãáßïõ êþäéêá ôçò ôåêìçñßùóçò áðáéôåß ó÷åôéêÜ ìåãÜëï áñéèìü åñãáëåßùí êáé âïçèçôéêþí ðñïãñáììÜôùí, ãíùóôÜ ùò <emphasis>åñãáëåßá ôåêìçñßùóçò</emphasis>. Áðáéôåß åðßóçò êáé ìéá ó÷åôéêÞ åîïéêåßùóç ìå ôï <application>CVS</application> êáé ôç äéáäéêáóßá áíÜêôçóçò ôùí áñ÷åßùí áðü áõôü, êáèþò êáé ìéá óåéñÜ áðü âÞìáôá ãéá ôç ìåôáãëþôôéóç ôïõ êþäéêá. Óôçí åíüôçôá áõôÞ ðåñéãñÜöïõìå Ýíá åíáëëáêôéêü ôñüðï åíçìÝñùóçò ôçò ôåêìçñßùóçò ðïõ åãêáèßóôáôáé ìáæß ìå ôï &os;. Ç ìÝèïäïò áõôÞ ÷ñçóéìïðïéåß ôçí ÓõëëïãÞ ôùí Ports êáé äßíåé ôéò ðáñáêÜôù äõíáôüôçôåò:</para> <itemizedlist> <listitem> <para>ÊáôÝâáóìá êáé åãêáôÜóôáóç ðñï-ìåôáãëùôôéóìÝíùí óôéãìéüôõðùí ôçò ôåêìçñßùóçò, ÷ùñßò íá áðáéôåßôáé êáìéÜ ôïðéêÞ ìåôáãëþôôéóç (åîáëåßöïíôáò Ýôóé êáé ôçí áíÜãêç åãêáôÜóôáóçò üëùí ôùí åñãáëåßùí ôåêìçñßùóçò).</para> </listitem> <listitem> <para>ÊáôÝâáóìá ôïõ ðçãáßïõ êþäéêá ôçò ôåêìçñßùóçò êáé ìåôáãëþôôéóç ôïõ ìÝóù ôùí äõíáôïôÞôùí ðïõ ðáñÝ÷ïõí ôá åñãáëåßá ôùí ports (áðëïðïéþíôáò ìå áõôü ôïí ôñüðï ôç ÷åéñïêßíçôç äéáäéêáóßá áíÜêôçóçò êáé ìåôáãëþôôéóçò).</para> </listitem> </itemizedlist> <para>ÁõôÝò ïé äýï ìÝèïäïé åíçìÝñùóçò ôçò ôåêìçñßùóçò ôïõ &os; õðïóôçñßæïíôáé áðü ìéá óåéñÜ áðü <emphasis>ports ôåêìçñßùóçò</emphasis> ôá ïðïßá åíçìåñþíïíôáé êÜèå ìÞíá áðü ôçí &a.doceng;. Óôç ÓõëëïãÞ ôùí Ports, èá ôá âñåßôå êÜôù áðü ôçí êáôçãïñßá <ulink url="http://www.freshports.org/docs/">docs</ulink>.</para> <sect3 id="doc-ports-install-make"> <title>Ìåôáãëþôôéóç êáé ÅãêáôÜóôáóç ôùí Ports ôçò Ôåêìçñßùóçò</title> <para>Ôá ports ôçò ôåêìçñßùóçò ÷ñçóéìïðïéïýí ôéò äõíáôüôçôåò ìåôáãëþôôéóçò ðïõ ðáñÝ÷åé ôï óýóôçìá ôùí ports þóôå íá äéåõêïëýíïõí ôç äéáäéêáóßá äçìéïõñãßáò ôçò ôåêìçñßùóçò. Ìå áõôü ôïí ôñüðï ç áíÜêôçóç ôïõ ðçãáßïõ êþäéêá ôçò ôåêìçñßùóçò ãßíåôáé áõôüìáôá ìå ôçí åêôÝëåóç ôçò &man.make.1; êáé ôéò êáôÜëëçëåò ñõèìßóåéò óôï ðåñéâÜëëïí. Ç åãêáôÜóôáóç êáé áðåãêáôÜóôáóç ôçò ôåêìçñßùóçò åßíáé ôï ßäéï åýêïëç ìå ôçí åãêáôÜóôáóç ïðïéïõäÞðïôå Üëëïõ port Þ ðáêÝôïõ óôï &os;.</para> <note> <para>Óå ðåñßðôùóç ôïðéêÞò ìåôáãëþôôéóçò ôùí ports ôçò ôåêìçñßùóçò, áðáéôåßôáé êáé ç åãêáôÜóôáóç ôùí <emphasis>åñãáëåßùí ôåêìçñßùóçò</emphasis>. Ôá åñãáëåßá áõôÜ ùóôüóï èá åãêáôáóôáèïýí áõôüìáôá.</para> </note> <para>Ç ïñãÜíùóç ôùí ports ôåêìçñßùóçò öáßíåôáé ðáñáêÜôù:</para> <itemizedlist> <listitem> <para>ÕðÜñ÷åé Ýíá êåíôñéêü <quote>master port</quote>, ôï <filename role="package">misc/freebsd-doc-en</filename> ôï ïðïßï äéáèÝôåé ôá áðáñáßôçôá áñ÷åßá êáé áðïôåëåß ôçí âÜóç üëùí ôùí Üëëùí ports ôåêìçñßùóçò. Áðü ðñïåðéëïãÞ, ôï port áõôü ìåôáãëùôôßæåé ìüíï ôçí ÁããëéêÞ ôåêìçñßùóç.</para> </listitem> <listitem> <para>ÕðÜñ÷åé Ýíá port <quote>üëá óå Ýíá</quote>, ôï <filename role="package">misc/freebsd-doc-all</filename> ôï ïðïßï ìåôáãëùôôßæåé êáé åãêáèéóôÜ üëç ôçí ôåêìçñßùóç óå üëåò ôéò äéáèÝóéìåò ãëþóóåò.</para> </listitem> <listitem> <para>ÔÝëïò, õðÜñ÷åé Ýíá <quote>åîáñôþìåíï port</quote> ãéá êÜèå ìåôÜöñáóç, ð.÷.: <filename role="package">misc/freebsd-doc-el</filename> ãéá ôçí ÅëëçíéêÞ ôåêìçñßùóç. ¼ëá áõôÜ ôá ports åîáñôþíôáé áðü ôï master port êáé åãêáèéóôïýí ôçí ôåêìçñßùóç ðïõ Ý÷åé ìåôáöñáóôåß óôçí áíôßóôïé÷ç ãëþóóá.</para> </listitem> </itemizedlist> <para>Ãéá íá åãêáôáóôÞóåôå Ýíá port ôåêìçñßùóçò áðü ôïí ðçãáßï êþäéêá, åêôåëÝóôå ôéò ðáñáêÜôù åíôïëÝò (ùò <username>root</username>):</para> <screen>&prompt.root; <userinput>cd /usr/ports/misc/freebsd-doc-en</userinput> &prompt.root; <userinput>make install clean</userinput></screen> <para>Ôï ðáñáðÜíù èá ìåôáãëùôôßóåé êáé èá åãêáôáóôÞóåé ôçí ÁããëéêÞ ôåêìçñßùóç óå ìïñöÞ ôìçìáôéêþí <acronym>HTML</acronym> êåéìÝíùí (üðùò ÷ñçóéìïðïéïýíôáé êáé óôï <ulink url="http://www.FreeBSD.org"></ulink>), óôïí êáôÜëïãï <filename class="directory">/usr/local/share/doc/freebsd</filename>.</para> <sect4 id="doc-ports-options"> <title>ÓõíçèéóìÝíåò ÅðéëïãÝò êáé ÐáñÜìåôñïé Ìåôáãëþôôéóçò</title> <para>Ìðïñåßôå íá ÷ñçóéìïðïéÞóåôå áñêåôÝò åðéëïãÝò ãéá ôçí ôñïðïðïßçóç ôçò ðñïåðéëåãìÝíçò óõìðåñéöïñÜò ôùí ports ôåêìçñßùóçò. ÐáñáêÜôù äåß÷íïõìå ìåñéêÝò ìüíï áðü áõôÝò:</para> <variablelist> <varlistentry> <term><makevar>WITH_HTML</makevar></term> <listitem> <para>ÅðéôñÝðåé ôç äçìéïõñãßá ôçò ôåêìçñßùóçò óå ìïñöÞ HTML. Èá äçìéïõñãçèåß Ýíá áñ÷åßï HTML ãéá êÜèå êåßìåíï. Ç ìïñöïðïéçìÝíç ôåêìçñßùóç èá áðïèçêåõèåß, áíÜëïãá ìå ôçí ðåñßðôùóç, óå Ýíá áñ÷åßï ìå üíïìá <filename>article.html</filename> Þ <filename>book.html</filename>. Èá ãßíåé åðßóçò êáé áðïèÞêåõóç ôùí áíôßóôïé÷ùí åéêüíùí.</para> </listitem> </varlistentry> <varlistentry> <term><makevar>WITH_PDF</makevar></term> <listitem> <para>ÅðéôñÝðåé ôç äçìéïõñãßá åããñÜöïõ óå ìïñöÞ &adobe; Portable Document Format (PDF) ãéá ÷ñÞóç ìå ôïí &adobe; &acrobat.reader;, ôï <application>Ghostscript</application>, Þ Üëëá ðñïãñÜììáôá ðñïâïëÞò åããñÜöùí PDF. Ç ìïñöïðïéçìÝíç ôåêìçñßùóç èá áðïèçêåõèåß, áíÜëïãá ìå ôçí ðåñßðôùóç, óå Ýíá áñ÷åßï <filename>article.pdf</filename> Þ <filename>book.pdf</filename>.</para> </listitem> </varlistentry> <varlistentry> <term><makevar>DOCBASE</makevar></term> <listitem> <para>Ðñüêåéôáé ãéá ôçí èÝóç óôçí ïðïßá èá åãêáôáóôáèåß ç ôåêìçñßùóç. Áðü ðñïåðéëïãÞ, åßíáé ï êáôÜëïãïò <filename class="directory">/usr/local/share/doc/freebsd</filename>.</para> <note> <para>ÐáñáôçñÞóôå üôé ï ðñïåðéëåãìÝíïò êáôÜëïãïò äéáöÝñåé áðü áõôüí ðïõ ÷ñçóéìïðïéåßôáé óôç ìÝèïäï <application>CVSup</application>. Áõôü óõìâáßíåé åðåéäÞ ãßíåôáé åãêáôÜóôáóç port, ôá ïðïßá áðü ðñïåðéëïãÞ ÷ñçóéìïðïéïýí ôïí êáôÜëïãï <filename class="directory">/usr/local</filename>. Ìðïñåßôå íá ðáñáêÜìøåôå áõôÞ ôçí ðñïåðéëïãÞ, áëëÜæïíôáò ôçí ôéìÞ ôçò ìåôáâëçôÞò <makevar>PREFIX</makevar>.</para> </note> </listitem> </varlistentry> </variablelist> <para>ÐáñáêÜôù èá âñåßôå Ýíá óýíôïìï ðáñÜäåéãìá ó÷åôéêü ìå ôç ÷ñÞóç ôùí ìåôáâëçôþí ãéá ôçí åãêáôÜóôáóç ôçò ÁããëéêÞò ôåêìçñßùóçò óå ìïñöÞ PDF:</para> <screen>&prompt.root; cd /usr/ports/misc/freebsd-doc-en &prompt.root; make -DWITH_PDF DOCBASE=share/doc/freebsd/en install clean</screen> </sect4> </sect3> <sect3 id="doc-ports-install-package"> <title>×ñÞóç ¸ôïéìùí ÐáêÝôùí Ôåêìçñßùóçò</title> <para>Ç ìåôáãëþôôéóç ôùí ports ôåêìçñßùóçò áðü ôïí ðçãáßï êþäéêá (üðùò åßäáìå óôçí ðñïçãïýìåíç åíüôçôá), áðáéôåß ôïðéêÞ åãêáôÜóôáóç ôùí áíôßóôïé÷ùí åñãáëåßùí ôåêìçñßùóçò êáé åðÜñêåéá ÷þñïõ óôï äßóêï ãéá ôçí äéáäéêáóßá. ¼ôáí äåí äéáôßèåíôáé ïé áðáñáßôçôïé ðüñïé ãéá ôçí åãêáôÜóôáóç ôùí åñãáëåßùí ôåêìçñßùóçò (Þ åðåéäÞ ç ìåôáãëþôôéóç áðü ôá ports èá ÷ñçóéìïðïéïýóå ðïëý ÷þñï), ç åãêáôÜóôáóç ìðïñåß íá ãßíåé ìÝóù Ýôïéìùí ðáêÝôùí ôåêìçñßùóçò.</para> <para>H &a.doceng; ðñïåôïéìÜæåé ìçíéáßá óôéãìéüôõðá ðáêÝôùí ôåêìçñßùóçò ôïõ &os;. Ôá Ýôïéìá áõôÜ ðáêÝôá ìðïñïýí íá ÷ñçóéìïðïéçèïýí ìå ôçí âïÞèåéá ïðïéïõäÞðïôå åñãáëåßïõ äéá÷åßñéóçò ðáêÝôùí ðïõ äéáôßèåôáé ìå ôï &os;, üðùò ãéá ðáñÜäåéãìá ôá &man.pkg.add.1;, &man.pkg.delete.1; ê.ë.ð.</para> <note> <para>¼ôáí ÷ñçóéìïðïéåßôå Ýôïéìá ðáêÝôá, ç åãêáôÜóôáóç ôçò ôåêìçñßùóçò ôçò åðéëåãìÝíçò ãëþóóáò èá ãßíåôáé óå üëåò ôéò äéáèÝóéìåò ìïñöÝò.</para> </note> <para>Ãéá ðáñÜäåéãìá, ç ðáñáêÜôù åíôïëÞ èá åãêáôáóôÞóåé ôçí ôåëåõôáßá Ýêäïóç ôïõ Ýôïéìïõ ðáêÝôïõ ôçò ÅëëçíéêÞò ôåêìçñßùóçò:</para> <screen>&prompt.root; <userinput>pkg_add -r el-freebsd-doc</userinput></screen> <note> <para>Ôá ðáêÝôá ÷ñçóéìïðïéïýí ôç ìïñöÞ <literal><replaceable>lang</replaceable>-freebsd-doc</literal> óôï üíïìá ôïõò, ç ïðïßá äéáöÝñåé áðü ôçí áíôßóôïé÷ç ìïñöÞ ôïõ port. Ôï <replaceable>lang</replaceable> åßíáé ç óýíôïìç ìïñöÞ ôçò ãëþóóáò, ð.÷. <literal>el</literal> ãéá ÅëëçíéêÜ Þ <literal>zh_cn</literal> ãéá ÁðëïðïéçìÝíá ÊéíÝæéêá.</para> </note> </sect3> <sect3 id="doc-ports-update"> <title>Åíçìåñþíïíôáò ôá Ports ôçò Ôåêìçñßùóçò</title> <para>Ãéá íá åíçìåñþóåôå Ýíá Þäç åãêáôåóôçìÝíï port ôåêìçñßùóçò, ìðïñåßôå íá ÷ñçóéìïðïéÞóåôå ïðïéïäÞðïôå åñãáëåßï áíáâÜèìéóçò ports. Ãéá ðáñÜäåéãìá, ç ðáñáêÜôù åíôïëÞ åíçìåñþíåé ôçí åãêáôåóôçìÝíç ÅëëçíéêÞ ôåêìçñßùóç ìÝóù ôïõ åñãáëåßïõ <filename role="package">ports-mgmt/portupgrade</filename> ìå ôç ÷ñÞóç ìüíï Ýôïéìùí ðáêÝôùí:</para> <screen>&prompt.root; <userinput>portupgrade -PP el-freebsd-doc</userinput></screen> </sect3> </sect2> <![ IGNORE [ <sect2 id="docsnap"> <sect2info> <authorgroup> <author> <firstname>Pav</firstname> <surname>Lucistnik</surname> <contrib>ÂáóéóìÝíï óå ðëçñïöïñßåò ðïõ ðáñåß÷å ï </contrib> </author> </authorgroup> </sect2info> <title>×ñçóéìïðïéþíôáò ôï Docsnap</title> <indexterm><primary>Updating and Upgrading</primary></indexterm> <indexterm> <primary>Docsnap</primary> <see>Updating and Upgrading</see> </indexterm> <para>Ôï <application>Docsnap</application> åßíáé Ýíá áðïèåôÞñéï (repository) &man.rsync.1; ãéá ôçí åíçìÝñùóç ôçò åãêáôåóôçìÝíçò ôåêìçñßùóçò ôïõ &os; ìÝóù åíüò ó÷åôéêÜ åýêïëïõ êáé ãñÞãïñïõ ôñüðïõ. ¸íáò <quote>åîõðçñåôçôÞò <application>Docsnap</application></quote> áíáêôÜ ôïí åíçìåñùìÝíï ðçãáßï êþäéêá ôçò ôåêìçñßùóçò êáé ôïí ìåôáãëùôôßæåé óå ìïñöÞ HTML êÜèå ìéá þñá. Äåí ÷ñåéÜæåôáé íá åãêáôáóôÞóåôå ôï <filename role="package">textproc/docproj</filename> ìå ôï <application>Docsnap</application>, êáèþò óáò ðáñÝ÷åé Ýôïéìåò äéïñèþóåéò ãéá ôçí Þäç åãêáôåóôçìÝíç ôåêìçñßùóç.</para> <para>Ç ìüíç áðáßôçóç ãéá ôçí ðáñáðÜíù ôå÷íéêÞ, åßíáé íá Ý÷åôå åãêáôáóôÞóåé ôï ðáêÝôï Þ port <filename role="package">net/rsync</filename>. Ãéá íá ôï ðñïóèÝóåôå, ÷ñçóéìïðïéÞóôå ôçí ðáñáêÜôù åíôïëÞ:</para> <screen>&prompt.root; <userinput>pkg_add -r rsync</userinput></screen> <note> <para>Ôï <application>Docsnap</application> áíáðôý÷èçêå áñ÷éêÜ ãéá ôçí åíçìÝñùóç ôçò ôåêìçñßùóçò ðïõ Ý÷åé åãêáôáóôáèåß óôïí êáôÜëïãï <filename class="directory">/usr/share/doc</filename>, áëëÜ ôá ðáñáêÜôù ðáñáäåßãìáôá ìðïñïýí íá ðñïóáñìïóôïýí êáé ãéá Üëëïõò êáôáëüãïõò. Ãéá êáôáëüãïõò ÷ñçóôþí, ïé åíôïëÝò äåí ÷ñåéÜæåôáé íá åêôåëåóôïýí ìå ðñïíüìéá <username>root</username>.</para> </note> <para>Ãéá ôçí åíçìÝñùóç ôçò ôåêìçñßùóçò, ÷ñçóéìïðïéÞóôå ôçí ðáñáêÜôù åíôïëÞ:</para> <screen>&prompt.root; <userinput>rsync -rltvz <replaceable>docsnap.sk.FreeBSD.org</replaceable>::docsnap <replaceable>/usr/share/doc</replaceable></userinput></screen> <note> <para>ÕðÜñ÷åé ìüíï Ýíáò åîõðçñåôçôÞò <application>Docsnap</application> ôç äåäïìÝíç óôéãìÞ: ï åîõðçñåôçôÞò <hostid>docsnap.sk.FreeBSD.org</hostid> ðïõ öáßíåôáé ðáñáðÜíù.</para> </note> <para>Ìçí ÷ñçóéìïðïéÞóåôå ôçí åðéëïãÞ <option>--delete</option>, êáèþò ç <command>make installworld</command> åãêáèéóôÜ êÜðïéá ðñÜãìáôá óôïí êáôÜëïãï <filename class="directory">/usr/share/doc</filename> ôá ïðïßá èá óâçóôïýí. Ãéá íá êáèáñßóåôå ôá ðáëéÜ áñ÷åßá, ÷ñçóéìïðïéÞóôå ôçí ðáñáêÜôù åíôïëÞ:</para> <screen>&prompt.root; <userinput>rsync -rltvz --delete <replaceable>docsnap.sk.FreeBSD.org</replaceable>::docsnap/??_??\.\* <replaceable>/usr/share/doc</replaceable></userinput></screen> <para>Áí åðéèõìåßôå íá åíçìåñþóåôå Ýíá õðïóýíïëï ôçò ôåêìçñßùóçò, ãéá ðáñÜäåéãìá ìüíï ôçí ÁããëéêÞ ôåêìçñßùóç, ìðïñåßôå íá ÷ñçóéìïðïéÞóåôå ôçí ðáñáêÜôù åíôïëÞ:</para> <screen>&prompt.root; <userinput>rsync -rltvz <replaceable>docsnap.sk.FreeBSD.org</replaceable>::docsnap/en_US.ISO8859-1 <replaceable>/usr/share/doc</replaceable></userinput></screen> </sect2> ]]> </sect1> <sect1 id="current-stable"> <title>Ðáñáêïëïýèçóç Åíüò ÊëÜäïõ ÁíÜðôõîçò</title> <indexterm><primary>-CURRENT</primary></indexterm> <indexterm><primary>-STABLE</primary></indexterm> <para>ÕðÜñ÷ïõí äýï êëÜäïé áíÜðôõîçò óôï &os;, ôï &os.current; êáé ôï &os.stable;. Óôçí åíüôçôá áõôÞ, èá åîçãÞóïõìå êÜðïéá ðñÜãìáôá ó÷åôéêÜ ìå áõôïýò ôïõò êëÜäïõò, êáé èá ðåñéãñÜøïõìå ðùò ìðïñåßôå íá äéáôçñÞóåôå ôï óýóôçìá óáò åíçìåñùìÝíï óå êÜðïéïí áðü áõôïýò. Èá ìéëÞóïõìå áñ÷éêÜ ãéá ôï &os.current; êáé Ýðåéôá ãéá ôï &os.stable;.</para> <sect2 id="current"> <title>Ðáñáêïëïõèþíôáò ôï &os.current;</title> <para>Êáèþò äéáâÜæåôå áõôü ôï êåßìåíï, íá Ý÷åôå õðüøéí óáò üôé ôï &os.current; åßíáé ðñÜãìáôé ç <quote>êüøç ôïõ îõñáöéïý</quote> óôçí áíÜðôõîç ôïõ &os;. Ïé ÷ñÞóôåò ôïõ &os.current; áíáìÝíåôáé íá Ý÷ïõí áõîçìÝíåò ôå÷íéêÝò ãíþóåéò, êáé íá åßíáé éêáíïß íá åðéëýïõí äýóêïëá ðñïâëÞìáôá ôïõ óõóôÞìáôïò ôïõò, ÷ùñßò âïÞèåéá. Áí åßóôå êáéíïýñéïò óôï &os;, ìÜëëïí èá ðñÝðåé íá ôï îáíáóêåöôåßôå ðñéí ôï åãêáôáóôÞóåôå.</para> <sect3> <title>Ôé Åßíáé ôï &os.current;;</title> <indexterm><primary>snapshot</primary></indexterm> <para>Ôï &os.current; áðïôåëåßôáé áðü ôïí ðëÝïí ðñüóöáôï ëåéôïõñãéêü ðçãáßï êþäéêá ôïõ &os;. ÐåñéëáìâÜíåé áëëáãÝò ðïõ âñßóêïíôáé óå åîÝëéîç, ðåéñáìáôéêÝò áëëáãÝò, êáé ìç÷áíéóìïýò ìåôÜâáóçò ïé ïðïßïé äåí åßíáé óßãïõñï üôé èá ðåñéëáìâÜíïíôáé óôçí åðüìåíç åðßóçìç Ýêäïóç ôïõ ëïãéóìéêïý. Áí êáé ðïëëÜ ìÝëç ôçò ïìÜäáò áíÜðôõîçò ôïõ &os; ìåôáãëùôôßæïõí êáèçìåñéíÜ ôïí ðçãáßï êþäéêá ôïõ &os.current;, õðÜñ÷ïõí ÷ñïíéêÝò ðåñßïäïé ðïõ ç ìåôáãëþôôéóç ôïõ åßíáé áäýíáôç. Ôá ðñïâëÞìáôá áõôÜ ãåíéêÜ åðéëýïíôáé üóï ðéï ãñÞãïñá ãßíåôáé, áëëÜ ôï áí ôï &os.current; èá óáò öÝñåé ôçí êáôáóôñïöÞ Þ êÜðïéï ðïëõðüèçôï ÷áñáêôçñéóôéêü, åßíáé ðåñéóóüôåñï èÝìá ôçò ÷ñïíéêÞò óôéãìÞò ðïõ èá åðéëÝîåôå íá áíáêôÞóåôå ôïí ðçãáßï êþäéêá!</para> </sect3> <sect3> <title>Ðïéïò ×ñåéÜæåôáé ôï &os.current;;</title> <para>Ôï &os.current; äéáôßèåôáé êáé åíäéáöÝñåé êõñßùò ôéò ðáñáêÜôù ôñåéò ïìÜäåò:</para> <orderedlist> <listitem> <para>ÌÝëç ôçò êïéíüôçôáò ôïõ &os; ðïõ äïõëåýïõí åíåñãÜ óå êÜðïéï ôìÞìá ôïõ ðçãáßïõ êþäéêá, êáé ãéá ôïõò ïðïßïõò ç ðáñáêïëïýèçóç ôïõ &os.current; åßíáé áðüëõôá áðáñáßôçôç.</para> </listitem> <listitem> <para>ÌÝëç ôçò êïéíüôçôáò ôïõ &os; ðïõ åßíáé åíåñãïß testers êáé åßíáé ðñüèõìïé íá áíáëþóïõí ôï ÷ñüíï ôïõò ãéá íá ëýóïõí ðñïâëÞìáôá, þóôå íá åîáóöáëßóïõí üôé ôï &os.current; èá ðáñáìåßíåé üóï ôï äõíáôüí ðéï óùóôü. ÓõíÞèùò, ôá ìÝëç áõôÜ êÜíïõí ðñïôÜóåéò ãéá ôïðéêÝò áëëáãÝò êáé ãéá ôçí ãåíéêÞ êáôåýèõíóç ôïõ &os;, êáé óôÝëíïõí patches ãéá ôçí ðñáãìáôïðïßçóç ôïõò.</para> </listitem> <listitem> <para>Áõôïß ðïõ áðëþò èÝëïõí íá âëÝðïõí ôéò ôåëåõôáßåò åíçìåñþóåéò, Þ íá ÷ñçóéìïðïéïýí ôïí ôåëåõôáßï ðçãáßï êþäéêá ùò áíáöïñÜ (ð.÷. ãéá <emphasis>ìåëÝôç</emphasis> êáé ü÷é ãéá åêôÝëåóç). ÌÝëç áõôÞò ôçò ïìÜäáò ìðïñåß åðßóçò ðåñéóôáóéáêÜ íá óõíåéóöÝñïõí ó÷üëéá Þ êþäéêá.</para> </listitem> </orderedlist> </sect3> <sect3> <title>Ôé <emphasis>Äåí</emphasis> Åßíáé ôï &os.current;;</title> <orderedlist> <listitem> <para>Äåí åßíáé Ýíáò ãñÞãïñïò ôñüðïò íá ðÜñåôå êþäéêá ï ïðïßïò äåí Ý÷åé êõêëïöïñÞóåé áêüìá óå êÜðïéá Ýêäïóç, ìå ôçí åëðßäá üôé ðåñéÝ÷åé êÜðïéá íÝá åêðëçêôéêÞ äõíáôüôçôá êáé èÝëåôå íá åßóôå ï ðñþôïò ðïõ ôç ÷ñçóéìïðïéåß. Áí åßóôå ðñÜãìáôé ï ðñþôïò ðïõ ôçí ÷ñçóéìïðïéåß, èá åßóôå åðßóçò êáé ï ðñþôïò ðïõ èá óõíáíôÞóåôå ôá íÝá ðñïâëÞìáôá êáé bugs.</para> </listitem> <listitem> <para>Äåí åßíáé Ýíáò ãñÞãïñïò ôñüðïò ãéá íá áíáêôÞóåôå äéïñèþóåéò ðñïâëçìÜôùí. ÊÜèå íÝá Ýêäïóç ôïõ &os.current; ìðïñåß íá åéóÜãåé ôüóá íÝá bugs üóá êáé áõôÜ ðïõ äéïñèþíåé.</para> </listitem> <listitem> <para>Ôï &os.current; äåí áðïôåëåß <quote>åðßóçìá õðïóôçñéæüìåíï</quote> êþäéêá. Áí êáé êáôáâÜëëïõìå êÜèå äõíáôÞ ðñïóðÜèåéá íá âïçèÞóïõìå üóïõò áíÞêïõí <quote>ðñáãìáôéêÜ</quote> óå êÜðïéá áðü ôéò ôñåéò ïìÜäåò ðïõ áíáöÝñáìå, ùóôüóï <emphasis>äåí Ý÷ïõìå ôï ÷ñüíï</emphasis> íá ðáñÝ÷ïõìå ôå÷íéêÞ õðïóôÞñéîç. Áõôü äåí óõìâáßíåé åðåéäÞ åßìáóôå êáêïÞèåéò êáé äýóêïëïé êáé äåí èÝëïõìå íá âïçèÜìå ôïõò áíèñþðïõò (äåí èá åß÷áìå êáí äçìéïõñãÞóåé ôï &os; áí óêåöôüìáóôáí Ýôóé). Ðïëý áðëÜ, äåí ìðïñïýìå íá áðáíôÜìå åêáôïíôÜäåò ìçíýìáôá ôçí çìÝñá êáé <emphasis>ôáõôü÷ñïíá</emphasis> íá äïõëåýïõìå óôï &os;! Áí äþóåôå óå ïðïéïäÞðïôå ìÝëïò ôçò ïìÜäáò áíÜðôõîçò ôçí åðéëïãÞ íá áðáíôÜåé óå ðïëëÝò åñùôÞóåéò ó÷åôéêÜ ìå ðåéñáìáôéêü êþäéêá Þ íá äïõëåýåé ãéá ôç âåëôßùóç ôïõ &os;, èá åðéëÝîåé óßãïõñá ôï äåýôåñï.</para> </listitem> </orderedlist> </sect3> <sect3> <title>×ñçóéìïðïéþíôáò ôï &os.current;</title> <indexterm> <primary>-CURRENT</primary> <secondary>using</secondary> </indexterm> <orderedlist> <listitem> <para>Ãñáöôåßôå óôéò ëßóôåò &a.current.name; êáé &a.svn-src-head.name;. Äåí åßíáé áðëþò êáëÞ éäÝá, åßíáé <emphasis>âáóéêü</emphasis> íá ôï êÜíåôå. Áí äåí åßóôå ãñáììÝíïò óôç ëßóôá <emphasis>&a.current.name;</emphasis>, äåí èá âëÝðåôå ôá ó÷üëéá ó÷åôéêÜ ìå ôçí ôñÝ÷ïõóá êáôÜóôáóç ôïõ óõóôÞìáôïò áðü üóïõò ôï ÷ñçóéìïðïéïýí, êáé Ýôóé ðéèáíþò èá êáôáëÞîåôå íá áíôéìåôùðßæåôå ðïëëÜ ðñïâëÞìáôá ðïõ Üëëïé Ý÷ïõí Þäç áíáêáëýøåé êáé ëýóåé. Áêüìá ðéï óçìáíôéêü åßíáé üôé èá ÷Üíåôå óçìáíôéêÝò áíáêïéíþóåéò, ïé ïðïßåò ìðïñåß íá åßíáé êñßóéìåò ãéá ôçí äéáôÞñçóç ôïõ óõóôÞìáôïò óáò óå õãéÞ êáôÜóôáóç.</para> <para>Ç ëßóôá &a.svn-src-head.name; èá óáò åðéôñÝøåé íá âëÝðåôå ôéò êáôá÷ùñÞóåéò óôï commit log ãéá êÜèå áëëáãÞ ðïõ ãßíåôáé, êáèþò êáé ðëçñïöïñßåò ãéá ðéèáíÝò ðáñåíÝñãåéåò ðïõ ìðïñåß íá Ý÷åé.</para> <para>Ãéá íá ãñáöôåßôå óå áõôÝò, Þ óå ïðïéåóäÞðïôå áðü ôéò õðÜñ÷ïõóåò ëßóôåò, åðéóêåöèåßôå ôçí ôïðïèåóßá &a.mailman.lists.link; êáé åðéëÝîôå ôç ëßóôá óôçí ïðïßá èÝëåôå íá ãßíåôå óõíäñïìçôÞò. Ïäçãßåò ãéá ôçí õðüëïéðç äéáäéêáóßá èá âñåßôå åðéôüðïõ. Áí óáò åíäéáöÝñåé íá ðáñáêïëïõèåßôå ôéò áëëáãÝò óå üëï ôï äÝíôñï ðçãáßïõ êþäéêá, óáò óõíéóôïýìå íá åããñáöåßôå óôç ëßóôá &a.svn-src-all.name;.</para> </listitem> <listitem> <para>ÁíáêôÞóôå ôïí ðçãáßï êþäéêá áðü Ýíá <link linkend="mirrors">mirror site</link> ôïõ &os;. Áõôü ìðïñåß íá ãßíåé ìå äýï ôñüðïõò:</para> <orderedlist> <indexterm> <primary><command>cvsup</command></primary> </indexterm> <indexterm> <primary><command>cron</command></primary> </indexterm> <indexterm> <primary>-CURRENT</primary> <secondary>Syncing with <application>CVSup</application></secondary> </indexterm> <listitem> <para>×ñçóéìïðïéÞóôå ôï ðñüãñáììá <link linkend="cvsup">cvsup</link> óå óõíäõáóìü ìå ôï <filename>supfile</filename> ìå ôçí ïíïìáóßá <filename>standard-supfile</filename> ôï ïðïßï èá âñåßôå óôïí êáôÜëïãï <filename>/usr/share/examples/cvsup</filename>. ÁõôÞ åßíáé êáé ç ðëÝïí óõíéóôþìåíç ìÝèïäïò, êáèþò óáò åðéôñÝðåé íá áíáêôÞóåôå üëç ôç óõëëïãÞ ìå ìéá êßíçóç, êáé óôéò åðüìåíåò áíáíåþóåéò èá ðáßñíåôå ìüíï ôéò áëëáãÝò. Ðïëëïß ÷ñÞóôåò åêôåëïýí ôï <command>cvsup</command> ìÝóù ôïõ <command>cron</command> þóôå íá êñáôÜíå ôïí ðçãáßï êþäéêá ôïõ óõóôÞìáôïò ôïõò ðÜíôá áíáíåùìÝíï áõôüìáôá. Èá ðñÝðåé íá ðñïóáñìüóåôå ôï õðüäåéãìá ôïõ <filename>supfile</filename> ðïõ äßíïõìå ðáñáðÜíù, êáé íá ñõèìßóåôå ôï <link linkend="cvsup">cvsup</link> ãéá ôï ðåñéâÜëëïí óáò.</para> <note> <para>Ôï õðüäåéãìá ôïõ áñ÷åßïõ <filename>standard-supfile</filename> ðñïïñßæåôáé ãéá ÷ñÞóç ìå êÜðïéï óõãêåêñéìÝíï êëÜäï áóöÜëåéáò (security branch) ôïõ &os;, êáé ü÷é ìå ôï &os.current;. Èá ðñÝðåé íá åðåîåñãáóôåßôå ôï áñ÷åßï êáé íá áíôéêáôáóôÞóåôå ôçí ðáñáêÜôù ãñáììÞ:</para> <programlisting>*default release=cvs tag=RELENG_<replaceable>X</replaceable>_<replaceable>Y</replaceable></programlisting> <para>ìå ôçí áêüëïõèç:</para> <programlisting>*default release=cvs tag=.</programlisting> <para>Ãéá ðåñéóóüôåñåò ðëçñïöïñßåò ó÷åôéêÜ ìå ôá tags ðïõ ìðïñåßôå íá ÷ñçóéìïðïéÞóåôå, ðáñáêáëïýìå äéáâÜóôå óôï Åã÷åéñßäéï ôçí åíüôçôá <link linkend="cvs-tags">ÅôéêÝôåò (Tags) ãéá ôï CVS</link>.</para> </note> </listitem> <listitem> <indexterm> <primary>-CURRENT</primary> <secondary>Syncing with CTM</secondary> </indexterm> <para>×ñçóéìïðïéÞóôå ôçí õðçñåóßá <application><link linkend="ctm">CTM</link></application>. Áí Ý÷åôå ðïëý êáêÞ óõíäåóéìüôçôá (õøçëü êüóôïò óýíäåóçò Þ ðñüóâáóç ìüíï ìÝóù email) ôï <application>CTM</application> áðïôåëåß ãéá óáò ìéá åíáëëáêôéêÞ ëýóç. Ìðïñåß ùóôüóï íá óáò äçìéïõñãÞóåé äéÜöïñá ðñïâëÞìáôá êáé íá êáôáëÞîåôå ìå ÷áëáóìÝíá áñ÷åßá. Ãéá ôï ëüãï áõôü, ôï <application>CTM</application> ÷ñçóéìïðïéåßôáé óðÜíéá, êÜôé ôï ïðïßï áõîÜíåé áêüìá ðåñéóóüôåñï ôçí ðéèáíüôçôá íá ìç äïõëåýåé óùóôÜ ãéá ìåãÜëá ÷ñïíéêÜ äéáóôÞìáôá. Óáò óõíéóôïýìå íá ÷ñçóéìïðïéÞóåôå ôï <application><link linkend="cvsup">CVSup</link></application> áí äéáèÝôåôå modem 9600 bps Þ ôá÷ýôåñï.</para> </listitem> </orderedlist> </listitem> <listitem> <para>Áí óêïðåýåôå íá áíáêôÞóåôå ôïí ðçãáßï êþäéêá ãéá êáíïíéêÞ ÷ñÞóç (åêôÝëåóç) êáé ü÷é áðëþò ãéá íá ôïí äåßôå, ôüôå áíáêôÞóôå <emphasis>ïëüêëçñï</emphasis> ôï &os.current; êáé ü÷é êÜðïéá åðéëåãìÝíá ôìÞìáôá. Óå äéáöïñåôéêÞ ðåñßðôùóç, åßíáé áñêåôÜ ðéèáíü íá óõíáíôÞóåôå ðñïâëÞìáôá, êáèþò ðïëëÜ êïììÜôéá ôïõ êþäéêá åîáñôþíôáé áðü áíáíåþóåéò óå Üëëá, êáé äåí ìðïñïýí íá ìåôáãëùôôéóôïýí áõôüíïìá.</para> <indexterm> <primary>-CURRENT</primary> <secondary>compiling</secondary> </indexterm> <para>Ðñéí ìåôáãëùôôßóåôå ôï &os.current;, äéáâÜóôå ðñïóåêôéêÜ ôï <filename>Makefile</filename> óôïí êáôÜëïãï <filename>/usr/src</filename>. Èá ðñÝðåé íá <link linkend="makeworld">ìåôáãëùôôßóåôå ôïí ðõñÞíá êáé üëï ôï âáóéêü óýóôçìá (world)</link> ôçí ðñþôç öïñÜ, ùò ìÝñïò ôçò äéáäéêáóßáò áíáâÜèìéóçò. ÄéáâÜæïíôáò ôçí &a.current; êáé ôï <filename>/usr/src/UPDATING</filename> èá åßóôå åíçìåñùìÝíïé ãéá íÝåò äéáäéêáóßåò üóï áöïñÜ ôçí åêêßíçóç óôï íÝï óáò óýóôçìá. Ïé äéáäéêáóßåò áõôÝò åßíáé óõ÷íÜ áðáñáßôçôåò üóï ðëçóéÜæïõìå óå ìéá íÝá åðßóçìç Ýêäïóç.</para> </listitem> <listitem> <para>Ãßíåôå åíåñãü ìÝëïò! Áí ÷ñçóéìïðïéåßôå ôï &os.current;, èÝëïõìå íá îÝñïõìå ôç ãíþìç óáò ãéá áõôü, åéäéêÜ áí Ý÷åôå ðñïôÜóåéò ãéá âåëôéþóåéò Þ äéïñèþóåéò ëáèþí. ÐñïôÜóåéò ðïõ óõíïäåýïíôáé êáé áðü êþäéêá ãßíïíôáé äåêôÝò ìå åíèïõóéáóìü!</para> </listitem> </orderedlist> </sect3> </sect2> <sect2 id="stable"> <title>×ñçóéìïðïéþíôáò ôï &os;-STABLE</title> <sect3> <title>Ôé Åßíáé ôï &os.stable;;</title> <indexterm><primary>-STABLE</primary></indexterm> <para>Ôï &os.stable; åßíáé Ýíáò êëÜäïò áíÜðôõîçò áðü ôïí ïðïßï ðñïêýðôïõí ïé <quote>ìåãÜëåò</quote> (major) åêäüóåéò. Ïé áëëáãÝò åéóÜãïíôáé óå áõôü ôïí êëÜäï ìå äéáöïñåôéêü ñõèìü, êáé ìå ôç ãåíéêÞ ðáñáäï÷Þ üôé Ý÷ïõí ðñþôá ðåñÜóåé áðü ôï &os.current; ãéá äïêéìÞ. Ùóôüóï, <emphasis>äåí ðáýåé</emphasis> íá åßíáé Ýíáò êëÜäïò áíÜðôõîçò, êáé áõôü óçìáßíåé üôé ï êþäéêáò ôïõ &os.stable; ìðïñåß ìéá äåäïìÝíç ÷ñïíéêÞ óôéãìÞ íá åßíáé áêáôÜëëçëïò ãéá óõãêåêñéìÝíåò åöáñìïãÝò. Ðñüêåéôáé ãéá ìéá áêüìá ãñáììÞ áíÜðôõîçò ãéá ôïõò ðñïãñáììáôéóôÝò, êáé äåí åßíáé áðáñáßôçôá êáôÜëëçëç ãéá ôïõò ôåëéêïýò ÷ñÞóôåò.</para> </sect3> <sect3> <title>Ðïéïò ×ñåéÜæåôáé ôï &os.stable;;</title> <para>Áí óáò åíäéáöÝñåé íá ðáñáêïëïõèåßôå Þ íá óõìâÜëëåôå óôçí áíÜðôõîç ôïõ &os;, êáé åéäéêÜ üóï áöïñÜ ôçí åðüìåíç åðßóçìç Ýêäïóç ôïõ áðü ôïí ßäéï êëÜäï (point release), åßíáé êáëÞ éäÝá íá ðáñáêïëïõèåßôå ôï &os.stable;.</para> <para>Áí êáé åßíáé áëÞèåéá üôé ïé äéïñèþóåéò áóöÜëåéáò ãßíïíôáé êáé óôïí êëÜäï &os.stable;, ùóôüóï <emphasis>äåí ÷ñåéÜæåôáé</emphasis> íá ðáñáêïëïõèåßôå ôï &os.stable; ìüíï ãéá áõôü ôï ëüãï. ÊÜèå áíáöïñÜ ðñïâëÞìáôïò áóöÜëåéáò ôïõ &os; åîçãåß ðùò íá äéïñèþóåôå ôï ðñüâëçìá ãéá êÜèå åðßóçìç Ýêäïóç ç ïðïßá åðçñåÜæåôáé áðü áõôü <footnote><para>Áõôü âÝâáéá äåí åßíáé áðüëõôá áëçèéíü. Äåí ìðïñïýìå íá óõíå÷ßóïõìå íá õðïóôçñßæïõìå ôéò ðáëéÝò åêäüóåéò ôïõ &os; ãéá ðÜíôá, áí êáé ôéò õðïóôçñßæïõìå ãéá ðïëëÜ ÷ñüíéá. Ãéá ðëÞñç ðåñéãñáöÞ ôçò ôñÝ÷ïõóáò ðïëéôéêÞò üóï áöïñÜ ôçí áóöÜëåéá ôùí ðáëéþí åêäüóåùí ôïõ &os;, äåßôå <ulink url="&url.base;/security/">http://www.FreeBSD.org/security/</ulink>.</para> </footnote>, êáé ç ðáñáêïëïýèçóç åíüò êëÜäïõ áíÜðôõîçò ìüíï ãéá ëüãïõò áóöáëåßáò, ðéèáíüí íá öÝñåé åðßóçò êáé Üëëåò áíåðéèýìçôåò áëëáãÝò ìáæß ôçò.</para> <para>Áí êáé êáôáâÜëëïõìå êÜèå äõíáôÞ ðñïóðÜèåéá þóôå íá åîáóöáëßóïõìå üôé ï êëÜäïò &os.stable; ìðïñåß íá ìåôáãëùôôéóôåß êáé íá åêôåëåóôåß óå êÜèå äåäïìÝíç ÷ñïíéêÞ óôéãìÞ, äåí ìðïñïýìå ùóôüóï íá ôï åããõçèïýìå. Åðéðñüóèåôá, áí êáé ï êþäéêáò áíáðôýóóåôáé óôï &os.current; ðñéí ðåñÜóåé óôï &os.stable;, ï êüóìïò ðïõ åêôåëåß ôï &os.stable; åßíáé ðåñéóóüôåñïò, êáé Ýôóé åßíáé áíáðüöåõêôï íá áíáêáëýðôïíôáé ðéï ðïëëÜ óöÜëìáôá êáé áêñáßåò ðåñéðôþóåéò óôï &os.stable; ôá ïðïßá äåí Ý÷ïõí ãßíåé åìöáíÞ óôï &os.current;.</para> <para>Ãéá ôïõò ëüãïõò áõôïýò, <emphasis>äåí</emphasis> óõíéóôïýìå íá ðáñáêïëïõèåßôå ôõöëÜ ôï &os.stable;, êáé åéäéêüôåñá åßíáé óçìáíôéêü íá ìçí áíáâáèìßæåôå óå áõôü åîõðçñåôçôÝò óå ðåñéâÜëëïíôá ðáñáãùãÞò, ÷ùñßò íá Ý÷åôå ðñþôá åëÝãîåé áíáëõôéêÜ ôïí êþäéêá óôï äéêü óáò ðåñéâÜëëïí áíÜðôõîçò.</para> <para>Áí äåí äéáèÝôåôå ôïõò ðüñïõò ãéá íá ôï êÜíåôå áõôü, óáò óõíéóôïýìå íá ÷ñçóéìïðïéåßôå ôçí ôåëåõôáßá åðßóçìç Ýêäïóç ôïõ &os;, êáé íá áíáâáèìßæåóôå áðü ôç ìéá Ýêäïóç óôçí åðüìåíç ìÝóù ôïõ ìç÷áíéóìïý äõáäéêþí åíçìåñþóåùí.</para> </sect3> <sect3> <title>×ñçóéìïðïéþíôáò ôï &os.stable;</title> <indexterm> <primary>-STABLE</primary> <secondary>using</secondary> </indexterm> <orderedlist> <listitem> <para>Ãñáöôåßôå óõíäñïìçôÞò óôç ëßóôá &a.stable.name;. Èá åßóôå Ýôóé åíçìåñùìÝíïé ãéá åîáñôÞóåéò ìåôáãëþôôéóçò ðïõ ßóùò åìöáíéóôïýí óôï &os.stable;, Þ ãéá Üëëá ðñïâëÞìáôá ðïõ ÷ñÞæïõí åéäéêÞò ðñïóï÷Þò. Óôç ëßóôá áõôÞ èá âñßóêåôå åðßóçò áíáêïéíþóåéò áðü ìÝëç ôçò ïìÜäáò áíÜðôõîçò, üôáí ðñüêåéôáé íá óõìðåñéëçöèåß êÜðïéá áìöéëåãüìåíç áíáíÝùóç Þ äéüñèùóç, äßíïíôáò Ýôóé óôïõò ÷ñÞóôåò ôçí åõêáéñßá íá åêöÝñïõí ãíþìç ó÷åôéêÜ ìå ôá ðñïâëÞìáôá ðïõ èá ðñïêáëÝóåé ç ðñïôåéíüìåíç áëëáãÞ.</para> <para>Èá ðñÝðåé íá åããñáöåßôå óôçí êáôÜëëçëç ëßóôá <application>SVN</application> áíÜëïãá ìå ôïí êëÜäï ðïõ ðáñáêïëïõèåßôå. Ãéá ðáñÜäåéãìá, áí ðáñáêïëïõèåßôå ôïí êëÜäï 7-STABLE, ç êáôÜëëçëç ëßóôá åßíáé ç &a.svn-src-stable-7.name;. Áõôü èá óáò åðéôñÝøåé íá âëÝðåôå ôéò êáôá÷ùñÞóåéò óôï commit log ãéá êÜèå áëëáãÞ ðïõ ãßíåôáé, êáèþò êáé ðëçñïöïñßåò ãéá ðéèáíÝò ðáñåíÝñãåéåò ðïõ ìðïñåß íá Ý÷åé.</para> <para>Ãéá íá ãñáöôåßôå óå áõôÝò, Þ óå ïðïéåóäÞðïôå áðü ôéò õðÜñ÷ïõóåò ëßóôåò, åðéóêåöèåßôå ôçí ôïðïèåóßá &a.mailman.lists.link; êáé åðéëÝîôå ôç ëßóôá óôçí ïðïßá èÝëåôå íá ãßíåôå óõíäñïìçôÞò. Ïäçãßåò ãéá ôçí õðüëïéðç äéáäéêáóßá èá âñåßôå åðéôüðïõ. Áí óáò åíäéáöÝñåé íá ðáñáêïëïõèåßôå ôéò áëëáãÝò óå üëï ôï äÝíôñï ðçãáßïõ êþäéêá, óáò óõíéóôïýìå íá åããñáöåßôå óôç ëßóôá &a.svn-src-all.name;.</para> </listitem> <listitem> <para>Áí ðñüêåéôáé íá åãêáôáóôÞóåôå Ýíá íÝï óýóôçìá ìå óêïðü íá åêôåëåßôå ôá ìçíéáßá snapshot ôïõ &os.stable;, ðáñáêáëïýìå íá åëÝãîåôå ôçí ôïðïèåóßá <ulink url="&url.base;/snapshots/">Snapshots</ulink> ãéá ðåñéóóüôåñåò ðëçñïöïñßåò. ÅíáëëáêôéêÜ, åßíáé äõíáôüí íá åãêáôáóôÞóåôå ôï ðéï ðñüóöáôï &os.stable; áðü êÜðïéï <link linkend="mirrors">mirror site</link> áêïëïõèþíôáò ôéò ðáñáêÜôù ïäçãßåò þóôå íá áíáâáèìßóåôå ôï óýóôçìá óáò óôçí ðëÝïí ðñüóöáôç Ýêäïóç ðçãáßïõ êþäéêá ôïõ &os.stable;.</para> <para>Áí äéáèÝôåôå Þäç êÜðïéá ðñïçãïýìåíç Ýêäïóç ôïõ &os; êáé åðéèõìåßôå íá áíáâáèìéóôåßôå ìÝóù ôïõ ðçãáßïõ êþäéêá, ìðïñåßôå åýêïëá íá ÷ñçóéìïðïéÞóåôå êÜðïéï <link linkend="mirrors">mirror site</link> ôïõ &os;. ÕðÜñ÷ïõí äýï ôñüðïé ãéá íá ãßíåé áõôü:</para> <orderedlist> <indexterm> <primary><command>cvsup</command></primary> </indexterm> <indexterm> <primary><command>cron</command></primary> </indexterm> <indexterm> <primary>-STABLE</primary> <secondary>syncing with <application>CVSup</application></secondary> </indexterm> <listitem> <para>×ñçóéìïðïéÞóôå ôï ðñüãñáììá <link linkend="cvsup">cvsup</link> óå óõíäõáóìü ìå ôï <filename>supfile</filename> ìå ôçí ïíïìáóßá <filename>stable-supfile</filename> ôï ïðïßï èá âñåßôå óôïí êáôÜëïãï <filename>/usr/share/examples/cvsup</filename>. ÁõôÞ åßíáé êáé ç ðëÝïí óõíéóôþìåíç ìÝèïäïò, êáèþò óáò åðéôñÝðåé íá áíáêôÞóåôå üëç ôç óõëëïãÞ ìå ìéá êßíçóç, êáé óôéò åðüìåíåò áíáíåþóåéò èá ðáßñíåôå ìüíï ôéò áëëáãÝò. Ðïëëïß ÷ñÞóôåò åêôåëïýí ôï <command>cvsup</command> ìÝóù ôïõ <command>cron</command> þóôå íá êñáôÜíå ôïí ðçãáßï êþäéêá ôïõ óõóôÞìáôïò ôïõò ðÜíôá áíáíåùìÝíï áõôüìáôá. Èá ðñÝðåé íá ðñïóáñìüóåôå ôï õðüäåéãìá ôïõ <filename>supfile</filename> ðïõ äßíïõìå ðáñáðÜíù, êáé íá ñõèìßóåôå ôï <link linkend="cvsup">cvsup</link> ãéá ôï ðåñéâÜëëïí óáò.</para> </listitem> <listitem> <indexterm> <primary>-STABLE</primary> <secondary>syncing with CTM</secondary> </indexterm> <para>×ñçóéìïðïéÞóôå ôçí õðçñåóßá <application><link linkend="ctm">CTM</link></application>. Áí äåí Ý÷åôå ãñÞãïñç êáé öôçíÞ óýíäåóç ìå ôï Internet, áõôÞ åßíáé ç óõíéóôþìåíç ìÝèïäïò.</para> </listitem> </orderedlist> </listitem> <listitem> <para>ÏõóéáóôéêÜ, áí ÷ñåéÜæåóôå ãñÞãïñç êáé êáôÜ áðáßôçóç ðñüóâáóç óôïí ðçãáßï êþäéêá, êáé ôï åýñïò æþíçò ôçò óýíäåóçò äåí áðïôåëåß ðñüâëçìá, ÷ñçóéìïðïéÞóôå ôï <command>cvsup</command> Þ ôï <command>ftp</command>. ÄéáöïñåôéêÜ, ÷ñçóéìïðïéÞóôå ôï <application>CTM</application>.</para> </listitem> <listitem> <indexterm> <primary>-STABLE</primary> <secondary>compiling</secondary> </indexterm> <para>Ðñéí ìåôáãëùôôßóåôå ôï &os.stable;, äéáâÜóôå ðñïóåêôéêÜ ôï <filename>Makefile</filename> óôïí êáôÜëïãï <filename>/usr/src</filename>. Èá ðñÝðåé íá <link linkend="makeworld">ìåôáãëùôôßóåôå ôïí ðõñÞíá êáé üëï ôï âáóéêü óýóôçìá (world)</link> ôçí ðñþôç öïñÜ, ùò ìÝñïò ôçò äéáäéêáóßáò áíáâÜèìéóçò. ÄéáâÜæïíôáò ôçí &a.stable; êáé ôï <filename>/usr/src/UPDATING</filename> èá åßóôå åíçìåñùìÝíïé ãéá íÝåò äéáäéêáóßåò üóï áöïñÜ ôçí åêêßíçóç óôï íÝï óáò óýóôçìá. Ïé äéáäéêáóßåò áõôÝò åßíáé óõ÷íÜ áðáñáßôçôåò üóï ðëçóéÜæïõìå óå ìéá íÝá åðßóçìç Ýêäïóç.</para> </listitem> </orderedlist> </sect3> </sect2> </sect1> <sect1 id="synching"> <title>Óõã÷ñïíßæïíôáò ôïí Ðçãáßï óáò Êþäéêá</title> <para>ÕðÜñ÷ïõí äéÜöïñïé ôñüðïé íá ÷ñçóéìïðïéÞóåôå ìéá óýíäåóç Internet (Þ email) ãéá íá åíçìåñþíåôå ïðïéïäÞðïôå ôìÞìá ðçãáßïõ êþäéêá ôïõ &os; Project óáò åíäéáöÝñåé, Þ êáé üëá áí ôï åðéèõìåßôå. Ïé âáóéêÝò õðçñåóßåò ðïõ ðñïóöÝñïõìå åßíáé ôï <link linkend="anoncvs">Áíþíõìï CVS</link>, ôï <link linkend="cvsup">CVSup</link>, êáé ôï <link linkend="ctm">CTM</link>.</para> <warning> <para>Áí êáé åßíáé äõíáôüí íá åíçìåñþóåôå ìüíï êÜðïéá ôìÞìáôá ôïõ äÝíôñïõ ðçãáßïõ êþäéêá, ç ìüíç äéáäéêáóßá åíçìÝñùóçò ðïõ õðïóôçñßæåôáé áöïñÜ ôçí åíçìÝñùóç ïëüêëçñïõ ôïõ äÝíôñïõ. ÌåôÜ ôçí åíçìÝñùóç, èá ðñÝðåé íá ìåôáãëùôôßóåôå îáíÜ ôüóï ôï userland (äçë. ôá ðñïãñÜììáôá ðïõ åêôåëïýíôáé óôçí ðåñéï÷Þ ÷ñÞóôç, üðùò áõôÜ ðïõ âñßóêïíôáé óôïõò êáôáëüãïõò <filename>/bin</filename> êáé <filename>/sbin</filename>) üóï êáé ôïí ðçãáßï êþäéêá ôïõ ðõñÞíá. Áí åíçìåñþóåôå ìüíï Ýíá ôìÞìá ôïõ ðçãáßïõ êþäéêá, ìüíï ôïí ðõñÞíá Þ ìüíï ôï userland, èá áíôéìåôùðßóåôå ðñïâëÞìáôá. Ôá ðñïâëÞìáôá áõôÜ ìðïñåß íá êõìáßíïíôáé áðü óöÜëìáôá ìåôáãëþôôéóçò ìÝ÷ñé kernel panic êáé êáôáóôñïöÞ äåäïìÝíùí.</para> </warning> <indexterm> <primary>CVS</primary> <secondary>anonymous</secondary> </indexterm> <para>Ôï <application>Áíþíõìï CVS</application> êáé ôï <application>CVSup</application> ÷ñçóéìïðïéïýí ôç ìÝèïäï <emphasis>pull</emphasis> ãéá ôçí åíçìÝñùóç ôïõ ðçãáßïõ êþäéêá. Óôçí ðåñßðôùóç ôïõ <application>CVSup</application>, ï ÷ñÞóôçò (ç êÜðïéï script ðïõ åêôåëåßôáé ìÝóù <command>cron</command>) åêôåëåß ôï ðñüãñáììá <command>cvsup</command> ôï ïðïßï áëëçëåðéäñÜ ìå Ýíá áíôßóôïé÷ï åîõðçñåôçôÞ <command>cvsupd</command> þóôå íá åíçìåñþóåé ôá ó÷åôéêÜ áñ÷åßá. Ïé åíçìåñþóåéò ðïõ ëáìâÜíåôå åßíáé ðÜíôïôå ïé ôåëåõôáßåò äéáèÝóéìåò, êáé èá ôéò ëÜâåôå ìüíï üôáí ôéò æçôÞóåôå. Ìðïñåßôå åýêïëá íá ðåñéïñßóåôå ôéò åíçìåñþóåéò óå óõãêåêñéìÝíá áñ÷åßá Þ êáôáëüãïõò ôá ïðïßá óáò åíäéáöÝñïõí. Ïé åíçìåñþóåéò äçìéïõñãïýíôáé äõíáìéêÜ áðü ôïí åîõðçñåôçôÞ, áíÜëïãá ìå ôï ôé Ý÷åôå åãêáôåóôçìÝíï êáé ôé åðéèõìåßôå íá ëÜâåôå. Ôï <application>Áíþíõìï CVS</application> åßíáé êÜðùò ðéï áðëïúêü áðü ôï <application>CVSup</application>, äåäïìÝíïõ üôé åßíáé áðëþò ìéá åðÝêôáóç ôïõ <application>CVS</application> ðïõ åðéôñÝðåé ôçí áíÜêôçóç áëëáãþí áðåõèåßáò áðü êÜðïéï áðïìáêñõóìÝíï CVS repository. Ôï <application>CVSup</application> åßíáé áñêåôÜ ðéï áðïôåëåóìáôéêü óå áõôüí ôï ôïìÝá, áëëÜ ôï <application>Áíþíõìï CVS</application> åßíáé áðëïýóôåñï óôç ÷ñÞóç.</para> <indexterm> <primary><application>CTM</application></primary> </indexterm> <para>Áðü ôçí Üëëç ìåñéÜ, ôï <application>CTM</application> äåí óõãêñßíåé Üìåóá ôïí ðçãáßï êþäéêá ðïõ Ý÷åôå ìå áõôüí ðïõ õðÜñ÷åé óôïí êåíôñéêü åîõðçñåôçôÞ þóôå íá áíáêôÞóåé ìüíï ôéò áëëáãÝò. Áíôßèåôá, óôï êåíôñéêü ìç÷Üíçìá CTM, åêôåëåßôáé áñêåôÝò öïñÝò ôçí çìÝñá Ýíá script. Ôï script áõôü áíáãíùñßæåé ôéò áëëáãÝò óôá áñ÷åßá óå ó÷Ýóç ìå ôçí ðñïçãïýìåíç åêôÝëåóç ôïõ, êáé Ýðåéôá ðáêåôÜñåé êáé óõìðéÝæåé ôéò áëëáãÝò ìå ôñüðï êáôÜëëçëï ãéá áðïóôïëÞ ìÝóù email (ìüíï åêôõðþóéìïé ASCII ÷áñáêôÞñåò). Óå êÜèå ôÝôïéï ðáêÝôï áëëáãþí áíôéóôïé÷ßæåôáé Ýíáò ìïíáäéáßïò áñéèìüò áêïëïõèßáò (sequence number) ðïõ ôï áíáãíùñßæåé. ÌåôÜ ôç ëÞøç ôïõò, ìðïñåßôå íá äþóåôå áõôÜ ôá áñ÷åßá äéáöïñþí ôïõ <application>CTM</application> (<quote>CTM deltas</quote>) óôï âïçèçôéêü ðñüãñáììá &man.ctm.rmail.1; ôï ïðïßï áõôüìáôá èá ôá áðïêùäéêïðïéÞóåé, èá ôá åðáëçèåýóåé, êáé èá åöáñìüóåé ôéò áëëáãÝò óôï áíôßãñáöï ðçãáßïõ êþäéêá ôïõ ÷ñÞóôç. Ç äéáäéêáóßá áõôÞ åßíáé ðïëý ðéï áðïäïôéêÞ áðü ôï <application>CVSup</application>, êáé åðéâáñýíåé ëéãüôåñï ôïõò åîõðçñåôçôÝò ìáò, êáèþò åßíáé ìéá äéáäéêáóßá ôýðïõ <emphasis>push</emphasis> áíôß ãéá <emphasis>pull</emphasis>.</para> <para>ÕðÜñ÷ïõí öõóéêÜ êÜðïéá óçìåßá ðïõ õóôåñåß. Áí áðü ëÜèïò äéáãñÜøåôå êÜðïéá ôìÞìáôá ôïõ ðçãáßïõ óáò êþäéêá, ôï <application>CVSup</application> èá áíé÷íåýóåé êáé èá äéïñèþóåé áõôüìáôá ôç âëÜâç ãéá óáò. Ôï <application>CTM</application> äåí èá ôï êÜíåé áõôü, êáé áí óâÞóåôå êÜðïéï ôìÞìá ôïõ äÝíôñïõ óáò (êáé äåí Ý÷åôå áíôßãñáöï áóöáëåßáò) èá ðñÝðåé íá îåêéíÞóåôå áðü ôçí áñ÷Þ (áðü ôï ðéï ðñüóöáôï CVS <quote>base delta</quote>) êáé íá ôï îáíáêôßóåôå áðü ôçí áñ÷Þ ìå ôï <application>CTM</application>. Ìå ôï <application>Áíþíõìï CVS</application>, ìðïñåßôå áðëþò íá äéáãñÜøåôå ôá ðñïâëçìáôéêÜ áñ÷åßá êáé íá óõã÷ñïíßóåôå îáíÜ ôïí ðçãáßï óáò êþäéêá.</para> </sect1> <sect1 id="makeworld"> <title>Ìåôáãëùôôßæïíôáò ôï Âáóéêü Óýóôçìá (<quote>world</quote>)</title> <indexterm> <primary>Rebuilding <quote>world</quote></primary> </indexterm> <para>¸÷ïíôáò óõã÷ñïíßóåé ôï ôïðéêü óáò äÝíôñï ðçãáßïõ êþäéêá óå êÜðïéá óõãêåêñéìÝíç Ýêäïóç ôïõ &os; (&os.stable;, &os.current;, ê.ï.ê.), ìðïñåßôå Ýðåéôá íá ôï ÷ñçóéìïðïéÞóåôå ãéá íá ìåôáãëùôôßóåôå ôï óýóôçìá óáò áðü ôçí áñ÷Þ.</para> <warning> <title>ÄçìéïõñãÞóôå ¸íá Áíôßãñáöï Áóöáëåßáò</title> <para>Äåí ìðïñïýìå ðáñÜ íá ôïíßóïõìå ðüóï óçìáíôéêü åßíáé íá äçìéïõñãÞóåôå Ýíá áíôßãñáöï áóöáëåßáò ôïõ óõóôÞìáôïò óáò <emphasis>ðñéí</emphasis> îåêéíÞóåôå áõôÞ ôç äéáäéêáóßá. Áí êáé ç ìåôáãëþôôéóç ôïõ âáóéêïý óõóôÞìáôïò åßíáé (üóï ôïõëÜ÷éóôïí áêïëïõèåßôå áõôÝò ôéò ïäçãßåò) ìéá ó÷åôéêÜ áðëÞ äéáäéêáóßá, áíáìößâïëá èá õðÜñîïõí êáé ðåñéðôþóåéò ðïõ ëÜèç äéêÜ óáò, Þ Üëëùí (óôï äÝíôñï ðçãáßïõ êþäéêá), èá óáò ïäçãÞóïõí óå Ýíá óýóôçìá ðïõ äåí èá ìðïñåß íá åêêéíÞóåé.</para> <para>Âåâáéùèåßôå üôé Ý÷åôå åíçìåñùìÝíï áíôßãñáöï áóöáëåßáò. Êáëü èá åßíáé íá Ý÷åôå åðßóçò ðñü÷åéñç ìéá äéóêÝôá fixit Þ Ýíá CD åêêßíçóçò. ºóùò íá ìçí ÷ñåéáóôåß ðïôÝ íá ôá ÷ñçóéìïðïéÞóåôå, áëëÜ êáëýôåñá íá åßóôå áóöáëÞò ðáñÜ íá ôï ìåôáíïéþíåôå áñãüôåñá!</para> </warning> <warning> <title>Ãßíåôå ÓõíäñïìçôÞò óôç ÓùóôÞ Ëßóôá Çë. Ôá÷õäñïìåßïõ</title> <indexterm><primary>mailing list</primary></indexterm> <para>Áðü ôç öýóç ôïõò, ïé êëÜäïé &os.stable; êáé &os.current; âñßóêïíôáé óå óõíå÷Þ <emphasis>áíÜðôõîç</emphasis>. ¼óïé óõíåéóöÝñïõí óôï &os; åßíáé áðëþò Üíèñùðïé, êáé ðåñéóôáóéáêÜ ëÜèç áðëþò óõìâáßíïõí.</para> <para>ÏñéóìÝíåò öïñÝò ôá ëÜèç áõôÜ åßíáé ìÜëëïí áêßíäõíá, êáé ôï ìüíï ðïõ êÜíïõí åßíáé íá åìöáíßæïõí ìåñéêÝò äéáãíùóôéêÝò ðñïåéäïðïéÞóåéò óôï óýóôçìá óáò. ¹ ìðïñåß ç áëëáãÞ íá åßíáé êáôáóôñïöéêÞ, êáé íá ïäçãÞóåé ôï óýóôçìá óáò óå áäõíáìßá åêêßíçóçò Þ áêüìá êáé íá êáôáóôñÝøåé ôá óõóôÞìáôá áñ÷åßùí óáò (Þ êáé áêüìá ÷åéñüôåñåò óõíÝðåéåò).</para> <para>Áí óõìâïýí ôÝôïéá ðñïâëÞìáôá, óýíôïìá èá åìöáíéóôåß Ýíá ìÞíõìá ôýðïõ <quote>heads up</quote> óôéò ó÷åôéêÝò ëßóôåò ôá÷õäñïìåßïõ, ôï ïðïßï èá åîçãåß ôï ðñüâëçìá êáé ðïéá óõóôÞìáôá åðçñåÜæåé. ¼ôáí ôï ðñüâëçìá ëõèåß, èá ãßíåé ìéá áíôßóôïé÷ç <quote>all clear</quote> áíáêïßíùóç.</para> <para>Áí ðñïóðáèåßôå íá áêïëïõèÞóåôå ôï &os.stable; Þ ôï &os.current;, êáé äåí äéáâÜæåôå ôéò áíôßóôïé÷åò ëßóôåò &a.stable.name; êáé &a.current.name;, øÜ÷íåôå ãéá ìðåëÜäåò.</para> </warning> <warning> <title>Ìçí ×ñçóéìïðïéÞóåôå ôçí åíôïëÞ <command>make world</command></title> <para>ÌåãÜëï ìÝñïò ôçò ðáëáéüôåñçò ôåêìçñßùóçò, óõíéóôÜ ôç ÷ñÞóç ôçò åíôïëÞò <command>make world</command>. Áí ôçí ÷ñçóéìïðïéÞóåôå, èá ðáñáëåéöèïýí ïñéóìÝíá óçìáíôéêÜ âÞìáôá ôçò äéáäéêáóßáò. ×ñçóéìïðïéÞóôå ôç ìüíï áí åßóôå áðüëõôá óßãïõñïé ãéá áõôü ðïõ êÜíåôå. Ãéá ôéò ðåñéóóüôåñåò ðåñéðôþóåéò, ç åíôïëÞ <command>make world</command> åßíáé ëáíèáóìÝíç, êáé áíôß ãéá áõôÞ èá ðñÝðåé íá áêïëïõèÞóåôå ôç äéáäéêáóßá ðïõ ðåñéãñÜöïõìå ðáñáêÜôù.</para> </warning> <sect2 id="canonical-build"> <title>Ï Êáíïíéêüò Ôñüðïò íá Åíçìåñþóåôå ôï Óýóôçìá óáò</title> <para>Ðñéí åíçìåñþóåôå ôï óýóôçìá óáò, èá ðñÝðåé íá åëÝãîåôå ôï <filename>/usr/src/UPDATING</filename> ãéá ôõ÷üí âÞìáôá ðïõ èá ðñÝðåé íá åêôåëÝóåôå ðñéí ôçí åêêßíçóç ôçò ìåôáãëþôôéóçò. Ôá âÞìáôá áõôÜ åîáñôþíôáé áðü ôçí Ýêäïóç ôïõ ðçãáßïõ êþäéêá ðïõ ðñüêåéôáé íá ÷ñçóéìïðïéÞóåôå. ¸ðåéôá, áêïëïõèÞóôå ôç äéáäéêáóßá ðïõ ðåñéãñÜöåôáé óôéò åðüìåíåò ðáñáãñÜöïõò.</para> <para>Ç äéáäéêáóßá áíáâÜèìéóçò ç ïðïßá ðåñéãñÜöåôáé åäþ âáóßæåôáé óôçí õðüèåóç üôé Ý÷åôå Þäç åãêáôáóôÞóåé ìéá ðáëéüôåñç Ýêäïóç ôïõ &os;, ìå ìéá ðáëéÜ Ýêäïóç ôïõ ìåôáãëùôôéóôÞ, Ýíá ðáëéü ðõñÞíá, ðáëéÜ <quote>åñãáëåßá ÷ñÞóôç</quote> êáé áñ÷åßá ñõèìßóåùí. Åñãáëåßá ÷ñÞóôç èåùñïýíôáé ôá âáóéêÜ åêôåëÝóéìá, ïé âéâëéïèÞêåò êáé ôá áñ÷åßá ðñïãñáììáôéóìïý. Ï ìåôáãëùôôéóôÞò åßíáé êé áõôüò ìÝñïò ôùí <quote>åñãáëåßùí ÷ñÞóôç</quote> óôï &os;, áëëÜ ÷ñåéÜæåôáé åéäéêÞ ìåôá÷åßñéóç êáôÜ ôç äéáäéêáóßá áíáâÜèìéóçò.</para> <para>ÕðïèÝôïõìå, åðßóçò, üôé Ý÷åôå Þäç êáôåâÜóåé ìéá åíçìåñùìÝíç Ýêäïóç áðü ôïí ðçãáßï êþäéêá ôïõ óõóôÞìáôïò. Áí ï ðçãáßïò êþäéêáò óôï óõãêåêñéìÝíï óýóôçìá åßíáé áðü ðáëéüôåñç Ýêäïóç, äåßôå ôï <xref linkend="synching"/> ãéá ëåðôïìåñåßò ïäçãßåò ó÷åôéêÜ ìå ôï ðùò íá óõã÷ñïíßóåôå ôïí ðçãáßï êþäéêá óå ìéá íåüôåñç Ýêäïóç.</para> <para>Ç áíáâÜèìéóç ôïõ &os; áðü ôïí ðçãáßï êþäéêÜ ôïõ öáßíåôáé íá åßíáé ðïëý áðëÞ äéáäéêáóßá. Óôçí ðñáãìáôéêüôçôá, Ý÷åé êÜðïéåò éäéáéôåñüôçôåò. Ìå ôá ÷ñüíéá, êáèþò ïé åîáñôÞóåéò ìåôáîý ôùí âçìÜôùí ôçò áíáâÜèìéóçò áíáêáëýðôïíôáé Þ áíáëýïíôáé êáëýôåñá, ïé ðñïãñáììáôéóôÝò ôïõ &os; áëëÜæïõí óéãÜ-óéãÜ áõôÞ ôç äéáäéêáóßá. Ïé ðáñáêÜôù ðáñÜãñáöïé ðåñéãñÜöïõí ôç ëïãéêÞ ìå ôçí ïðïßá Ý÷åé ó÷åäéáóèåß ç ðñïôåéíüìåíç äéáäéêáóßá áíáâÜèìéóçò.</para> <para>Ìéá åðéôõ÷Þò äéáäéêáóßá áíáâÜèìéóçò ðñÝðåé íá êáëýøåé ôïõëÜ÷éóôïí ôéò äýï ðéï âáóéêÝò éäéáéôåñüôçôåò ìéáò áíáâÜèìéóçò áðü ðçãáßï êþäéêá:</para> <itemizedlist> <listitem> <para>Ï ðáëéüò ìåôáãëùôôéóôÞò óõóôÞìáôïò ìðïñåß íá åßíáé áêáôÜëëçëïò ãéá ìåôáãëþôôéóç ôïõ íÝïõ ðõñÞíá. (Êáé ïé ìåôáãëùôôéóôÝò Ý÷ïõí ïñéóìÝíåò öïñÝò ðñïâëÞìáôá, üðùò êÜèå Üëëï ëïãéóìéêü.) Ïðüôå ï íÝïò ðõñÞíáò ðñÝðåé íá ìåôáãëùôôéóôåß ìå ôï íÝï ìåôáãëùôôéóôÞ. Ðéï óõãêåêñéìÝíá, ï íÝïò ìåôáãëùôôéóôÞò ðñÝðåé íá áíáâáèìéóôåß ðñéí áðü ôï íÝï ðõñÞíá. Áõôü äå óçìáßíåé âÝâáéá üôé áõôüò ï íÝïò ìåôáãëùôôéóôÞò ðñÝðåé íá <emphasis>åãêáôáóôáèåß</emphasis> ðñéí ìåôáãëùôôéóôåß ï íÝïò ðõñÞíáò.</para> </listitem> <listitem> <para>Ôá íÝá åñãáëåßá ÷ñÞóôç áðü ôï âáóéêü óýóôçìá ôïõ &os; ìðïñåß íá åîáñôþíôáé áðü ôïí ôñüðï ëåéôïõñãßáò ôïõ íÝïõ ðõñÞíá. Ïðüôå ï íÝïò ðõñÞíáò ðñÝðåé íá åãêáôáóôáèåß ðñéí áðü ôï íÝï âáóéêü óýóôçìá.</para> </listitem> </itemizedlist> <para>ÁõôÜ ôá äýï óçìåßá åßíáé ïé âáóéêïß ëüãïé ãéá ôïõò ïðïßïõò ðñïôåßíïíôáé ôá êåíôñéêÜ âÞìáôá ìéáò áíáâÜèìéóçò, ôá âÞìáôá <maketarget>buildworld</maketarget>, <maketarget>buildkernel</maketarget>, <maketarget>installkernel</maketarget>, êáé <maketarget>installworld</maketarget>. Óôéò åðüìåíåò ðáñáãñÜöïõò èá ðåñéãñÜøïõìå ðéï áíáëõôéêÜ áõôÜ ôá âÞìáôá. ÕðÜñ÷ïõí êé Üëëïé ëüãïé üìùò ãéá ôïõò ïðïßïõò ÷ñåéÜæåôáé ðñïóï÷Þ üôáí êÜíåôå ìéá ôÝôïéá áíáâÜèìéóç. Ìåñéêïß áðü áõôïýò åßíáé ïé åîÞò:</para> <itemizedlist> <listitem> <para>Ôá ðáëéÜ åñãáëåßá ôïõ âáóéêïý óõóôÞìáôïò ìðïñåß íá ìçí ôñÝ÷ïõí óùóôÜ ìå ôï íÝï ðõñÞíá. Ãé áõôü ðñÝðåé íá åãêáôáóôáèåß ôï åíçìåñùìÝíï âáóéêü óýóôçìá áìÝóùò ìåôÜ ôçí åãêáôÜóôáóç ôïõ íÝïõ ðõñÞíá.</para> </listitem> <listitem> <para>ÌåñéêÝò öïñÝò ÷ñåéÜæïíôáé áëëáãÝò óôá áñ÷åßá ñõèìßóåùí ðñéí åãêáôáóôáèåß ôï íÝï âáóéêü óýóôçìá. ¶ëëåò öïñÝò ç åãêáôÜóôáóç üëùí ôùí áñ÷åßùí ñõèìßóåùí ìðïñåß íá äçìéïõñãÞóåé ðñïâëÞìáôá óôçí åãêáôÜóôáóç. Ãé áõôü Ý÷ïõìå ÷ùñßóåé ôçí åíçìÝñùóç ôùí áñ÷åßùí ñõèìßóåùí óå äýï îå÷ùñéóôÜ âÞìáôá.</para> </listitem> <listitem> <para>Óôçí ðëåéïøçößá ôùí ðåñéðôþóåùí ç äéáäéêáóßá åãêáôÜóôáóçò áíôéêáèéóôÜ Þ ðñïóèÝôåé áñ÷åßá ôïõ óõóôÞìáôïò· äå óâÞíåé êáíÝíá õðÜñ÷ïí áñ÷åßï. Óå ìåñéêÝò ðåñéðôþóåéò áõôü ìðïñåß íá äçìéïõñãÞóåé ðñïâëÞìáôá. ¼ôáí õðÜñ÷åé ôÝôïéá ðåñßðôùóç, ç äéáäéêáóßá åãêáôÜóôáóçò ôõðþíåé åíçìåñùôéêÜ ìçíýìáôá ãéá ôá áñ÷åßá ôá ïðïßá ðñÝðåé íá óâçóôïýí ÷åéñïêßíçôá. Áõôü ôï âÞìá ìðïñåß íá áõôïìáôïðïéçèåß óôï ìÝëëïí.</para> </listitem> </itemizedlist> <para>¸÷ïíôáò üëåò áõôÝò ôéò éäéáéôåñüôçôåò ìéáò áíáâÜèìéóçò áðü ðçãáßï êþäéêá, êáôáëÞîáìå óôçí ðáñáêÜôù äéáäéêáóßá áíáâÜèìéóçò. ÏñéóìÝíåò öïñÝò ìðïñåß íá ÷ñåéÜæåôáé íá ðñïóèÝóåôå êÜðïéá âÞìáôá óå áõôÞ ôç äéáäéêáóßá. Ôá âáóéêÜ âÞìáôá üìùò ðáñáìÝíïõí ôá ßäéá, êé åßíáé ôá åîÞò:</para> <orderedlist> <listitem> <para><command>make <maketarget>buildworld</maketarget></command></para> <para>Áõôü ôï âÞìá ìåôáãëùôôßæåé ðñþôá ìéá åíçìåñùìÝíç Ýêäïóç ôïõ ßäéïõ ôïõ ìåôáãëùôôéóôÞ óõóôÞìáôïò êáé ìåñéêþí áðáñáßôçôùí åñãáëåßùí. ¾óôåñá, ÷ñçóéìïðïéþíôáò ôï íÝï ìåôáãëùôôéóôÞ, ðñïåôïéìÜæåé ìéá íÝá Ýêäïóç üëïõ ôïõ âáóéêïý óõóôÞìáôïò ôïõ &os;. Ôá åíçìåñùìÝíá åêôåëÝóéìá, âéâëéïèÞêåò êáé áñ÷åßá ðñïãñáììáôéóìïý êáôáëÞãïõí óôïí êáôÜëïãï <filename class="directory">/usr/obj</filename>.</para> </listitem> <listitem> <para><command>make <maketarget>buildkernel</maketarget></command></para> <para>Óå áíôßèåóç ìå ðáëéüôåñåò äéáäéêáóßåò áíáâÜèìéóçò (ïé ïðïßåò êáëïýóáí ÷åéñïêßíçôá ôï &man.config.8; êáé ôï &man.make.1;) áõôü ôï âÞìá ìåôáãëùôôßæåé ôïí ðõñÞíá ôïõ &os; ÷ñçóéìïðïéþíôáò ôïí åíçìåñùìÝíï ìåôáãëùôôéóôÞ óõóôÞìáôïò áðü ôïí êáôÜëïãï <filename class="directory">/usr/obj</filename>. Áõôü óáò ðñïóôáôåýåé áðü ðñïâëÞìáôá áóõìâáôüôçôáò ìåôáîý ôïõ ìåôáãëùôôéóôÞ êáé ôïõ ðõñÞíá.</para> </listitem> <listitem> <para><command>make <maketarget>installkernel</maketarget></command></para> <para>ÅãêáôÜóôáóç ôïõ íÝïõ ðõñÞíá êáé ôùí áñèñùìÜôùí ôïõ óôï äßóêï ôïõ óõóôÞìáôïò. ¸ôóé ìðïñåß ðëÝïí ôï óýóôçìá íá îåêéíÞóåé ìå ôï íÝï, åíçìåñùìÝíï ðõñÞíá.</para> </listitem> <listitem> <para>Åêêßíçóç óå ëåéôïõñãßá single user.</para> <para>Ç ëåéôïõñãßá single user åëá÷éóôïðïéåß ôçí ðéèáíüôçôá íá Ý÷åôå ðñïâëÞìáôá åðåéäÞ áíáâáèìßóáôå êÜðïéï ðñüãñáììá ðïõ ôñÝ÷åé Þäç. Åßíáé åðßóçò ðéï áóöáëÞò, áöïý äå ÷ñåéÜæåôáé íá ôñÝîåôå ôéò åöáñìïãÝò ôïõ ðáëéïý âáóéêïý óõóôÞìáôïò ìå ôï íÝï ðõñÞíá.</para> </listitem> <listitem> <para><command>mergemaster <option>-p</option></command></para> <para>Áõôü ôï âÞìá åíçìåñþíåé ôá áðïëýôùò âáóéêÜ áñ÷åßá ñõèìßóåùí ôïõ &os;, ãéá íá ìðïñÝóåôå íá åãêáôáóôÞóåôå óùóôÜ ôï íÝï âáóéêü óýóôçìá. Åíçìåñþíåé, ãéá ðáñÜäåéãìá, ôç âÜóç ÷ñçóôþí êáé ïìÜäùí ÷ñçóôþí ôïõ &os;. ÊÜèå öïñÜ ðïõ ðñïóôßèåôáé Ýíáò íÝïò ÷ñÞóôçò óõóôÞìáôïò Þ ìéá íÝá ïìÜäá ÷ñçóôþí, ôï âÞìá <maketarget>installworld</maketarget> ôçò áíáâÜèìéóçò èåùñåß üôé Ý÷åôå Þäç ñõèìßóåé ôïõò íÝïõò ÷ñÞóôåò Þ ôéò íÝåò ïìÜäåò. Áõôü áêñéâþò êÜíåé óå áõôü ôï óçìåßï ôï åñãáëåßï &man.mergemaster.8;.</para> </listitem> <listitem> <para><command>make <maketarget>installworld</maketarget></command></para> <para>Ôï åðüìåíï âÞìá åßíáé íá åãêáôáóôÞóåôå ôï åíçìåñùìÝíï âáóéêü óýóôçìá áðü ôïí êáôÜëïãï <filename class="directory">/usr/obj</filename>. ÌåôÜ áðü áõôü Ý÷åôå ðëÝïí Ýíá íÝï ðõñÞíá êáé Ýíá åíçìåñùìÝíï âáóéêü óýóôçìá, ôï ïðïßï ôáéñéÜæåé ìå ôïí íÝï ðõñÞíá.</para> </listitem> <listitem> <para><command>mergemaster</command></para> <para>¸íá áðü ôá ôåëåõôáßá âÞìáôá åßíáé ç áíáâÜèìéóç ôùí áñ÷åßùí ñõèìßóåùí ôïõ óõóôÞìáôïò. Ôï åñãáëåßï &man.mergemaster.8; ìðïñåß íá óáò âïçèÞóåé óå áõôü ôï âÞìá, áöïý åíçìåñþíåé ôá áñ÷åßá ñõèìßóåùí êñáôþíôáò êáé ïðïéåóäÞðïôå ôïðéêÝò áëëáãÝò Ý÷åôå êÜíåé óôï óýóôçìÜ óáò.</para> </listitem> <listitem> <para>ÅðáíåêêéíÞóôå ôï óýóôçìá.</para> <para>Ìéá ôåëåõôáßá åðáíåêêßíçóç ôïõ óõóôÞìáôïò óáò åîáóöáëßæåé üôé ôï óýóôçìá îåêéíÜåé ìå ôï íÝï ðõñÞíá, ôï åíçìåñùìÝíï âáóéêü óýóôçìá êáé ôá êáéíïýñéá áñ÷åßá ñõèìßóåùí.</para> </listitem> </orderedlist> <para>Áí ç áíáâÜèìéóç ðïõ êÜíåôå åßíáé áðü ìéá Ýêäïóç ôïõ &os; óå ìéá ðéï êáéíïýñéá Ýêäïóç ôïõ ßäéïõ êëÜäïõ áíÜðôõîçò, ð.÷. áðü 7.0 óå 7.1, ôüôå ìåñéêÜ áðü ôá âÞìáôá áõôÞ ôçò äéáäéêáóßáò ìðïñåß íá ìç ÷ñåéÜæïíôáé áöïý åßíáé ëéãüôåñï ðéèáíü íá óõíáíôÞóåôå áóõìâáôüôçôåò ìåôáîý ôïõ ìåôáãëùôôéóôÞ óõóôÞìáôïò, ôïõ ðõñÞíá, ôïõ âáóéêïý óõóôÞìáôïò êáé ôùí áñ÷åßùí ñõèìßóåùí. Ç áíáâÜèìéóç óå ôÝôïéåò ðåñéðôþóåéò, ìåôáîý äýï minor åêäüóåùí ôïõ &os;, ßóùò ìðïñåß íá ãßíåé êáé ìå ôçí ðáëéüôåñç äéáäéêáóßá: ôñÝ÷ïíôáò<command>make <maketarget>world</maketarget></command> êáé ýóôåñá ìåôáãëùôôßæïíôáò êáé óôÞíïíôáò Ýíá íÝï ðõñÞíá.</para> <para>¼ôáí üìùò áíáâáèìßóåôå ôï &os; ìåôáîý major åêäüóåùí, êáëýôåñá íá ÷ñçóéìïðïéÞóåôå ôç äéáäéêáóßá ðïõ ðåñéãñÜöïõìå åäþ. Áëëéþò ìðïñåß íá áíôéìåôùðßóåôå ðñïâëÞìáôá åßôå êáôÜ ôç äéÜñêåéá ôçò áíáâÜèìéóçò Þ áöïý Ý÷åé ðëÝïí ïëïêëçñùèåß.</para> <para>ÊÜðïéåò áðü ôéò áíáâáèìßóåéò (ð.÷. áðü ìéá Ýêäïóç 4.<replaceable>X</replaceable> óå 5.0) ìðïñåß íá áðáéôïýí ìåñéêÜ ÷åéñïêßíçôá âÞìáôá (üðùò ôï íá ìåôáêéíÞóåôå Þ íá óâÞóåôå óõãêåêñéìÝíá áñ÷åßá ðñéí ôï âÞìá <maketarget>installworld</maketarget>). Ðñéí áðü êÜèå áíáâÜèìéóç äéáâÜóôå ðñïóåêôéêÜ ôéò ïäçãßåò óôï áñ÷åßï <filename>/usr/src/UPDATING</filename>· åéäéêÜ ôéò ïäçãßåò óôï ôÝëïò ôïõ áñ÷åßïõ, ïé ïðïßåò ðåñéãñÜöïõí áíáëõôéêÜ ôçí ðñïôåéíüìåíç äéáäéêáóßá áíáâÜèìéóçò.</para> <para>ÁõôÞ ç äéáäéêáóßá áíáâÜèìéóçò åîåëßóóåôáé êáé äéïñèþíåôáé êáèþò ïé ðñïãñáììáôéóôÝò ôïõ &os; áíáêáëýðôïõí êáéíïýñéåò åîáñôÞóåéò ìåôáîý ôùí óõóôáôéêþí ôïõ óõóôÞìáôïò Þ êÜíïõí äéïñèþóåéò ãéá íá áðïöýãïõí áóõìâáôüôçôåò ìåôáîý ôùí äéáöïñåôéêþí õðïóõóôçìÜôùí. Åëðßæïõìå üôé ôá êåíôñéêÜ âÞìáôá ôçò äéáäéêáóßáò ðïõ ðåñéãñÜöåôáé åäþ äå èá áëëÜîïõí ðïëý ãéá áñêåôü êáéñü ðëÝïí.</para> <para>Áíáêåöáëáéþíïíôáò üëá ôá âÞìáôá ôá ïðïßá ðåñéãñÜøáìå ðáñáðÜíù, ç ðñïôåéíüìåíç äéáäéêáóßá áíáâÜèìéóçò ôïõ &os; áðü ôïí ðçãáßï êþäéêá ôïõ óõóôÞìáôïò åßíáé:</para> <screen>&prompt.root; <userinput>cd /usr/src</userinput> &prompt.root; <userinput>make buildworld</userinput> &prompt.root; <userinput>make buildkernel</userinput> &prompt.root; <userinput>make installkernel</userinput> &prompt.root; <userinput>shutdown -r now</userinput></screen> <note> <para>ÕðÜñ÷ïõí êÜðïéåò ìÜëëïí óðÜíéåò ðåñéðôþóåéò, ðïõ áðáéôåßôáé ìéá åðéðëÝïí åêôÝëåóç ôïõ <command>mergemaster -p</command> ðñéí ôï âÞìá <maketarget>buildworld</maketarget>. Ïé ðåñéðôþóåéò áõôÝò ðåñéãñÜöïíôáé óôï <filename>UPDATING</filename>. Óå ãåíéêÝò ãñáììÝò ðÜíôùò, ìðïñåßôå ìå áóöÜëåéá íá ðáñáëåßøåôå áõôü ôï âÞìá, áí äåí áíáâáèìßæåôå ôï óýóôçìá óáò ìåôáîý ðïëëáðëþí åêäüóåùí ôïõ &os;.</para> </note> <para>ÌåôÜ ôçí åðéôõ÷Þ ïëïêëÞñùóç ôïõ <maketarget>installkernel</maketarget>, èá ðñÝðåé íá åðáíåêêéíÞóåôå óå êáôÜóôáóç åíüò ÷ñÞóôç (ð.÷. ÷ñçóéìïðïéþíôáò ôçí åíôïëÞ <command>boot -s</command> óôçí ðñïôñïðÞ ôïõ öïñôùôÞ åêêßíçóçò). ¸ðåéôá åêôåëÝóôå:</para> <screen>&prompt.root; <userinput>mount -u /</userinput> &prompt.root; <userinput>mount -a -t ufs</userinput> &prompt.root; <userinput>adjkerntz -i</userinput> &prompt.root; <userinput>mergemaster -p</userinput> &prompt.root; <userinput>cd /usr/src</userinput> &prompt.root; <userinput>make installworld</userinput> &prompt.root; <userinput>mergemaster</userinput> &prompt.root; <userinput>reboot</userinput></screen> <warning> <title>ÄéáâÜóôå ôéò ÅðéðëÝïí ÅîçãÞóåéò</title> <para>Ç äéáäéêáóßá ðïõ ðåñéãñÜøáìå ðáñáðÜíù åßíáé ìéá áðëÞ ðåñßëçøç ãéá íá óáò âïçèÞóåé íá îåêéíÞóåôå. Èá ðñÝðåé ùóôüóï íá äéáâÜóåôå ôéò ðáñáêÜôù åíüôçôåò ãéá íá êáôáíïÞóåôå ðëÞñùò êÜèå âÞìá, åéäéêÜ áí èÝëåôå íá ÷ñçóéìïðïéÞóåôå äéêü óáò ðñïóáñìïóìÝíï ðõñÞíá.</para> </warning> </sect2> <sect2 id="src-updating"> <title>ÄéáâÜóôå ôï <filename>/usr/src/UPDATING</filename></title> <para>Ðñéí êÜíåôå ïôéäÞðïôå Üëëï, äéáâÜóôå ôï <filename>/usr/src/UPDATING</filename> (Þ ôï áíôßóôïé÷ï áñ÷åßï, áí Ý÷åôå áðïèçêåýóåé ôïí ðçãáßï êþäéêá óå Üëëï êáôÜëïãï). Ôï áñ÷åßï áõôü ðåñéÝ÷åé óçìáíôéêÝò ðëçñïöïñßåò ó÷åôéêÜ ìå ðñïâëÞìáôá ðïõ ìðïñåß íá óõíáíôÞóåôå Þ ßóùò íá êáèïñßæåé ôç óåéñÜ ìå ôçí ïðïßá ðñÝðåé íá åêôåëåóôïýí êÜðïéåò åíôïëÝò. Áí ôï áñ÷åßï <filename>UPDATING</filename> Ýñ÷åôáé óå óýãêñïõóç ìå êÜôé ðïõ äéáâÜóáôå åäþ, ðñïôåñáéüôçôá Ý÷åé ôï áñ÷åßï <filename>UPDATING</filename>.</para> <important> <para>Ç áíÜãíùóç ôïõ áñ÷åßïõ <filename>UPDATING</filename> äåí åßíáé áðïäåêôü õðïêáôÜóôáôï ôçò óõíäñïìÞò óôç óùóôÞ ëßóôá çëåêôñïíéêïý ôá÷õäñïìåßïõ, üðùò ðåñéãñÜøáìå ðñïçãïõìÝíùò. Ïé äýï áðáéôÞóåéò åßíáé óõìðëçñùìáôéêÝò, äåí áëëçëïáíáéñïýíôáé.</para> </important> </sect2> <sect2 id="make-conf"> <title>ÅëÝãîôå ôï <filename>/etc/make.conf</filename></title> <indexterm> <primary><filename>make.conf</filename></primary> </indexterm> <para>ÅîåôÜóôå ôá áñ÷åßá <filename>/usr/share/examples/etc/make.conf</filename> êáé <filename>/etc/make.conf</filename>. Ôï ðñþôï ðåñéÝ÷åé êÜðïéåò ðñïåðéëåãìÝíåò ìåôáâëçôÝò (defines), ïé ðåñéóóüôåñåò áðü ôéò ïðïßåò åßíáé ùò ó÷üëéá. Ãéá íá ôá ÷ñçóéìïðïéÞóåôå üôáí ìåôáãëùôôßæåôå ôï óýóôçìá óáò, ðñïóèÝóôå ôá óôï <filename>/etc/make.conf</filename>. Íá Ý÷åôå õðüøç óáò, ðùò ïôéäÞðïôå ðñïóèÝôåôå óôï áñ÷åßï <filename>/etc/make.conf</filename> ÷ñçóéìïðïéåßôå åðßóçò êÜèå öïñÜ ðïõ åêôåëåßôå ôçí åíôïëÞ <command>make</command>, Ýôóé åßíáé ãåíéêÜ êáëÞ éäÝá íá âÜëåôå ôéìÝò ðïõ åßíáé ëïãéêÝò ãéá ôï óýóôçìá óáò.</para> <para>¸íáò ôõðéêüò ÷ñÞóôçò èá èÝëåé ðéèáíþò íá áíôéãñÜøåé ôéò ãñáììÝò <makevar>CFLAGS</makevar> êáé <makevar>NO_PROFILE</makevar> áðü ôï áñ÷åßï <filename>/usr/share/examples/etc/make.conf</filename> óôï <filename>/etc/make.conf</filename> áöáéñþíôáò ôáõôü÷ñïíá êáé ôï óýìâïëï ôïõ ó÷ïëßïõ.</para> <para>ÅîåôÜóôå êáé ôéò Üëëåò ìåôáâëçôÝò (<makevar>COPTFLAGS</makevar>, <makevar>NOPORTDOCS</makevar> ê.ï.ê.) êáé áðïöáóßóôå áí ó÷åôßæïíôáé ìå ôï åðéèõìçôü ãéá óáò áðïôÝëåóìá.</para> </sect2> <sect2 id="updating-etc"> <title>Åíçìåñþóôå ôá Áñ÷åßá óôï <filename>/etc</filename></title> <para>Ï êáôÜëïãïò <filename>/etc</filename> ðåñéÝ÷åé ìåãÜëï ìÝñïò ôùí ðëçñïöïñéþí ñýèìéóçò ôïõ óõóôÞìáôïò óáò, üðùò åðßóçò êáé scripts ðïõ åêôåëïýíôáé êáôÜ ôçí åêêßíçóç ôïõ óõóôÞìáôïò. ÌåñéêÜ áðü ôá scripts áõôÜ áëëÜæïõí áðü Ýêäïóç óå Ýêäïóç ôïõ &os;.</para> <para>ÏñéóìÝíá áðü ôá áñ÷åßá ñõèìßóåùí ÷ñçóéìïðïéïýíôáé åðßóçò êáôÜ ôçí êáèçìåñéíÞ ÷ñÞóç ôïõ óõóôÞìáôïò. Ôï <filename>/etc/group</filename> åßíáé Ýíá áðü áõôÜ.</para> <para>¸÷ïõí õðÜñîåé ðåñéðôþóåéò óôï ðáñåëèüí, üðïõ ôï <command>make installworld</command> áíÝìåíå áðü ðñéí ôçí ýðáñîç óõãêåêñéìÝíùí ïíïìÜôùí ÷ñçóôþí (usernames) Þ ïìÜäùí (groups). ÊáôÜ ôç äéáäéêáóßá ôçò áíáâÜèìéóçò Þôáí áñêåôÜ ðéèáíü áõôïß ïé ÷ñÞóôåò Þ ïìÜäåò íá ìçí õðÞñ÷áí. Áõôü äçìéïõñãïýóå ðñïâëÞìáôá óôçí äéáäéêáóßá. Óå êÜðïéåò ðåñéðôþóåéò, ôï <command>make buildworld</command> èá åëÝãîåé áí õðÜñ÷ïõí áõôïß ïé ÷ñÞóôåò Þ ïìÜäåò.</para> <para>Ìéá ôÝôïéá ðåñßðôùóç ðáñïõóéÜóôçêå üôáí ðñïóôÝèçêå ï ÷ñÞóôçò <username>smmsp</username>. Ç äéáäéêáóßá áíáâÜèìéóçò áðïôýã÷áíå óå ðïëëïýò ÷ñÞóôåò, ôç óôéãìÞ ðïõ ôï &man.mtree.8; ðñïóðáèïýóå íá äçìéïõñãÞóåé ôïí êáôÜëïãï <filename>/var/spool/clientmqueue</filename>.</para> <para>Ç ëýóç åßíáé íá åêôåëÝóåôå ôï &man.mergemaster.8; óå êáôÜóôáóç ðñï-åãêáôÜóôáóçò, äßíïíôáò ôçí åðéëïãÞ <option>-p</option>. ÁõôÞ èá óõãêñßíåé ìüíï ôá áñ÷åßá ðïõ åßíáé áðáñáßôçôá ãéá ôçí åðéôõ÷ßá åêôÝëåóçò ôïõ <maketarget>buildworld</maketarget> Þ ôïõ <maketarget>installworld</maketarget>.</para> <screen>&prompt.root; <userinput>cd /usr/src/usr.sbin/mergemaster</userinput> &prompt.root; <userinput>./mergemaster.sh -p</userinput></screen> <tip> <para>Áí áéóèÜíåóôå éäéáßôåñá ðáñáíïúêüò, ìðïñåßôå íá åëÝãîåôå ôï óýóôçìá óáò ãéá íá äåßôå ðïéá áñ÷åßá áíÞêïõí óôçí ïìÜäá ðïõ ìåôïíïìÜæåôå Þ äéáãñÜöåôå:</para> <screen>&prompt.root; <userinput>find / -group <replaceable>GID</replaceable> -print</userinput></screen> <para>Ç ðáñáðÜíù åíôïëÞ èá óáò äåßîåé üëá ôá áñ÷åßá ôá ïðïßá áíÞêïõí óôçí ïìÜäá <replaceable>GID</replaceable> (ìðïñåßôå íá äþóåôå üíïìá Þ áñéèìçôéêü áíáãíùñéóôéêü ôçò ïìÜäáò).</para> </tip> </sect2> <sect2 id="makeworld-singleuser"> <title>Ìåôáâåßôå óå ÊáôÜóôáóç Åíüò ×ñÞóôç</title> <indexterm><primary>single-user mode</primary></indexterm> <para>ºóùò ðñïôéìÜôå íá ìåôáãëùôôßóåôå ôï óýóôçìá óå êáôÜóôáóç åíüò ÷ñÞóôç. Åêôüò áðü ôï ðñïöáíÝò ðëåïíÝêôçìá ôçò åëáöñÜ ìåãáëýôåñçò ôá÷ýôçôáò, ç åðáíåãêáôÜóôáóç ôïõ óõóôÞìáôïò èá åðçñåÜóåé ðïëëÜ óçìáíôéêÜ áñ÷åßá ôïõ óõóôÞìáôïò, üëá ôá åêôåëÝóéìá áñ÷åßá ôïõ âáóéêïý óõóôÞìáôïò, ôéò âéâëéïèÞêåò, ôá áñ÷åßá include ê.á. Áí ôá áëëÜîåôå áõôÜ óå Ýíá óýóôçìá ðïõ âñßóêåôáé óå êáíïíéêÞ ëåéôïõñãßá (êáé åéäéêÜ áí õðÜñ÷ïõí åíåñãïß ÷ñÞóôåò ôçí äåäïìÝíç óôéãìÞ), øÜ÷íåôå ãéá ìðåëÜäåò.</para> <indexterm><primary>multi-user mode</primary></indexterm> <para>Ìéá Üëëç ìÝèïäïò åßíáé íá ìåôáãëùôôßóåôå ôï óýóôçìá óå êáôÜóôáóç êáíïíéêÞò ëåéôïõñãßáò, áëëÜ íá ìåôáâåßôå óå êáôÜóôáóç åíüò ÷ñÞóôç ãéá ôçí åãêáôÜóôáóç. Áí èÝëåôå íá ôï êÜíåôå ìå áõôü ôïí ôñüðï, áðëþò ìçí åêôåëÝóåôå ôá áêüëïõèá âÞìáôá ìÝ÷ñé ôï ôÝëïò ôçò ìåôáãëþôôéóçò. Ìðïñåßôå íá áíáâÜëëåôå ôç ìåôÜâáóç óå êáôÜóôáóç åíüò ÷ñÞóôç ìÝ÷ñé íá åßóôå Ýôïéìïé ãéá ôï <maketarget>installkernel</maketarget> Þ <maketarget>installworld</maketarget>.</para> <para>Ùò õðåñ÷ñÞóôçò ìðïñåßôå íá åêôåëÝóåôå:</para> <screen>&prompt.root; <userinput>shutdown now</userinput></screen> <para>óå Ýíá óýóôçìá óå êáíïíéêÞ ëåéôïõñãßá ãéá íá ìåôáâåßôå óå êáôÜóôáóç åíüò ÷ñÞóôç.</para> <para>ÅíáëëáêôéêÜ, åðáíåêêéíÞóôå ôï óýóôçìá êáé óôçí ðñïôñïðÞ ôïõ öïñôùôÞ åêêßíçóçò, åðéëÝîôå <quote>single user</quote>. Ôï óýóôçìá èá îåêéíÞóåé óå êáôÜóôáóç åíüò ÷ñÞóôç. Óôçí ðñïôñïðÞ ôçò ãñáììÞò åíôïëþí èá ðñÝðåé íá ãñÜøåôå:</para> <screen>&prompt.root; <userinput>fsck -p</userinput> &prompt.root; <userinput>mount -u /</userinput> &prompt.root; <userinput>mount -a -t ufs</userinput> &prompt.root; <userinput>swapon -a</userinput></screen> <para>Èá ãßíåé Ýëåã÷ïò óôá óõóôÞìáôá áñ÷åßùí, êáé ðñïóÜñôçóç ôïõ <filename>/</filename> ìå äõíáôüôçôá áíÜãíùóçò/åããñáöÞò. ¸ðåéôá èá ðñïóáñôçèïýí üëá ôá Üëëá óõóôÞìáôá áñ÷åßùí UFS ôá ïðïßá áíáöÝñïíôáé óôï <filename>/etc/fstab</filename>, êáé èá åíåñãïðïéçèåß ôï swap.</para> <note> <para>Áí ôï CMOS ñïëüé ôïõ õðïëïãéóôÞ óáò åßíáé ñõèìéóìÝíï óå ôïðéêÞ þñá êáé ü÷é óå GMT (áõôü åßíáé áëÞèåéá áí ç Ýîïäïò ôçò åíôïëÞò &man.date.1; äåí äåß÷íåé óùóôÞ çìåñïìçíßá êáé þñá), ßóùò ÷ñåéáóôåß íá åêôåëÝóåôå åðßóçò ôçí ðáñáêÜôù åíôïëÞ:</para> <screen>&prompt.root; <userinput>adjkerntz -i</userinput></screen> <para>Ìå áõôü ôïí ôñüðï èá âåâáéùèåßôå üôé ïé ôïðéêÝò óáò ñõèìßóåéò þñáò Ý÷ïõí ñõèìéóôåß óùóôÜ. ÄéáöïñåôéêÜ, ìðïñåß íá óõíáíôÞóåôå ðñïâëÞìáôá áñãüôåñá.</para> </note> </sect2> <sect2 id="cleaning-usr-obj"> <title>ÄéáãñÜøôå ôï <filename>/usr/obj</filename></title> <para>Êáèþò ãßíåôáé ç åðáíáìåôáãëþôôéóç, ôìÞìáôá ôïõ óõóôÞìáôïò ôïðïèåôïýíôáé áðü ðñïåðéëïãÞ óå õðïêáôáëüãïõò ôïõ <filename>/usr/obj</filename>. Ïé õðïêáôÜëïãïé áõôïß áíôéãñÜöïõí ôç äïìÞ ðïõ áêïëïõèåßôáé óôï <filename>/usr/src</filename>.</para> <para>Ìðïñåßôå íá åðéôá÷ýíåôå ôç äéáäéêáóßá ôïõ <command>make buildworld</command> êáé åðßóçò íá ãëõôþóåôå áðü êÜðïéá ðéèáíÜ ðñïâëÞìáôá, áí äéáãñÜøåôå êáé áõôü ôïí êáôÜëïãï.</para> <para>ÊÜðïéá áñ÷åßá óå õðïêáôáëüãïõò ôïõ <filename>/usr/obj</filename> ìðïñåß íá Ý÷ïõí ÷áñáêôçñéóôåß ùò immutable ìÝóù ôïõ áíôßóôïé÷ïõ flag (ãéá ðåñéóóüôåñåò ëåðôïìÝñåéåò äåßôå ôï &man.chflags.1;). Ðñéí äéáãñÜøåôå áõôÜ ôá áñ÷åßá, èá ðñÝðåé ðñþôá íá êáôáñãÞóåôå áõôü ôï flag.</para> <screen>&prompt.root; <userinput>cd /usr/obj</userinput> &prompt.root; <userinput>chflags -R noschg *</userinput> &prompt.root; <userinput>rm -rf *</userinput></screen> </sect2> <sect2 id="updating-upgrading-compilebase"> <title>Åðáíáìåôáãëùôôßóôå ôï Âáóéêü Óýóôçìá</title> <sect3> <title>Áðïèçêåýóôå ôçí ¸îïäï</title> <para>Êáèþò åêôåëåßôáé ç &man.make.1;, åßíáé êáëÞ éäÝá ç Ýîïäïò ôçò íá áðïèçêåýåôáé óå êÜðïéï Üëëï áñ÷åßï. Áí êÜôé ðÜåé óôñáâÜ, èá Ý÷åôå Ýíá áíôßãñáöï ôïõ ìçíýìáôïò ëÜèïõò. Áí êáé áõôü ßóùò äåí óáò âïçèÞóåé íá âñåßôå ôé ðÞãå óôñáâÜ, ìðïñåß íá äéåõêïëýíåé Üëëïõò áí óôåßëåôå ôï ìÞíõìá óáò óå ìéá áðü ôéò ëßóôåò çëåêôñïíéêïý ôá÷õäñïìåßïõ ôïõ &os;.</para> <para>Ï åõêïëüôåñïò ôñüðïò ãéá íá ãßíåé áõôü, åßíáé ÷ñçóéìïðïéþíôáò ôçí åíôïëÞ &man.script.1; ìå ìéá ðáñÜìåôñï ðïõ íá êáèïñßæåé ôï üíïìá ôïõ áñ÷åßïõ óôï ïðïßï èá áðïèçêåõôåß ç Ýîïäïò. Èá ðñÝðåé íá ôï åêôåëÝóåôå áìÝóùò ðñéí îåêéíÞóåôå ôçí ìåôáãëþôôéóç ôïõ âáóéêïý óõóôÞìáôïò, êáé íá ãñÜøåôå <userinput>exit</userinput> ìüëéò ç äéáäéêáóßá ïëïêëçñùèåß.</para> <screen>&prompt.root; <userinput>script /var/tmp/mw.out</userinput> Script started, output file is /var/tmp/mw.out &prompt.root; <userinput>make TARGET</userinput> <emphasis>… ìåôáãëþôôéóç, ìåôáãëþôôéóç, ìåôáãëþôôéóç …</emphasis> &prompt.root; <userinput>exit</userinput> Script done, …</screen> <para>Áí áðïöáóßóåôå íá áðïèçêåýóåôå ôçí Ýîïäï, <emphasis>ìç ÷ñçóéìïðïéÞóåôå</emphasis> ãéá áõôü ôï óêïðü ôïí êáôÜëïãï <filename>/tmp</filename>. Ôá ðåñéå÷üìåíá áõôïý ôïõ êáôáëüãïõ ðéèáíþò íá äéáãñáöïýí ôçí åðüìåíç öïñÜ ðïõ èá åêêéíÞóåôå ôï óýóôçìá óáò. ¸íáò êáëýôåñïò êáôÜëïãïò ãéá ôçí áðïèÞêåõóç ôïõ åßíáé ï <filename>/var/tmp</filename> (üðùò óôï ðñïçãïýìåíï ðáñÜäåéãìá) Þ ï ðñïóùðéêüò êáôÜëïãïò ôïõ <username>root</username>.</para> </sect3> <sect3 id="make-buildworld"> <title>Ìåôáãëùôôßóôå ôï Âáóéêü Óýóôçìá</title> <para>Èá ðñÝðåé íá âñßóêåóôå óôïí êáôÜëïãï <filename>/usr/src</filename>:</para> <screen>&prompt.root; <userinput>cd /usr/src</userinput></screen> <para>(åêôüò áí öõóéêÜ Ý÷åôå áðïèçêåýóåé ôïí ðçãáßï êþäéêá óå êÜðïéï Üëëï êáôÜëïãï, ïðüôå áðëþò ìåôáêéíçèåßôå óå áõôüí).</para> <indexterm><primary><command>make</command></primary></indexterm> <para>Ãéá íá åðáíáìåôáãëùôôßóåôå ôï âáóéêü óýóôçìá, ÷ñçóéìïðïéÞóôå ôçí åíôïëÞ &man.make.1;. Ç åíôïëÞ áõôÞ äéáâÜæåé ôéò ó÷åôéêÝò ïäçãßåò áðü ôï áñ÷åßï <filename>Makefile</filename>, ôï ïðïßï ðåñéãñÜöåé ìå ðïéï ôñüðï ðñÝðåé íá ìåôáãëùôôéóôïýí ôá ðñïãñÜììáôá áðü ôá ïðïßá áðïôåëåßôáé ôï &os;, ôç óåéñÜ ìå ôçí ïðïßá ðñÝðåé íá ãßíåé ç ìåôáãëþôôéóç ê.ï.ê.</para> <para>Ç ãåíéêÞ ìïñöÞ ôçò åíôïëÞò ðïõ èá ðëçêôñïëïãÞóåôå åßíáé ç ðáñáêÜôù:</para> <screen>&prompt.root; <userinput>make -<replaceable>x</replaceable> -D<replaceable>VARIABLE</replaceable> <replaceable>target</replaceable></userinput></screen> <para>Óôï ðáñÜäåéãìá áõôü, ôï <option>-<replaceable>x</replaceable></option> áíôéðñïóùðåýåé ìéá åðéëïãÞ ðïõ èÝëåôå íá äþóåôå óôçí &man.make.1;. Äåßôå ôçí óåëßäá manual ôïõ &man.make.1; ãéá ðáñáäåßãìáôá äõíáôþí åðéëïãþí.</para> <para>Ç åðéëïãÞ <option>-D<replaceable>VARIABLE</replaceable></option> ðåñíÜåé ìéá ìåôáâëçôÞ óôï <filename>Makefile</filename>. Ç óõìðåñéöïñÜ ôïõ <filename>Makefile</filename> åëÝã÷åôáé áðü ôÝôïéïõ åßäïõò ìåôáâëçôÝò. Ðñüêåéôáé ãéá ôéò ßäéåò ìåôáâëçôÝò ðïõ êáèïñßæïíôáé êáé óôï <filename>/etc/make.conf</filename>, êáé áõôüò åßíáé Ýíáò áêüìá ôñüðïò êáèïñéóìïý ôïõò.</para> <screen>&prompt.root; <userinput>make -DNO_PROFILE <replaceable>target</replaceable></userinput></screen> <para>Ôï ðáñáðÜíù äåß÷íåé Ýíá åðéðëÝïí ôñüðï íá êáèïñßóåôå üôé äåí èÝëåôå íá ìåôáãëùôôéóôïýí ïé âéâëéïèÞêåò ìå ðëçñïöïñßåò profiling, êáé áíôéóôïé÷åß ìå ôçí ðáñáêÜôù ãñáììÞ óôï <filename>/etc/make.conf</filename>:</para> <programlisting>NO_PROFILE= true # Avoid compiling profiled libraries</programlisting> <para>Ôï <replaceable>target</replaceable> äçëþíåé óôï &man.make.1; ôé èÝëåôå íá êÜíåôå. Óå êÜèå <filename>Makefile</filename> ïñßæåôáé Ýíáò áñéèìüò äéáöïñåôéêþí <quote>targets</quote>, êáé ç åðéëïãÞ ðïõ èá êÜíåôå, êáèïñßæåé ôé áêñéâþò èá ãßíåé.</para> <para>ÊÜðïéá áðü ôá targets ðïõ êáèïñßæïíôáé óôï <filename>Makefile</filename>, äåí ðñïïñßæïíôáé ãéá Üìåóç åêôÝëåóç áðü ôï ÷ñÞóôç. Áíôß ãéá áõôü, ÷ñçóéìïðïéïýíôáé áðü ôç äéáäéêáóßá ìåôáãëþôôéóçò ãéá íá ìïéñáóôåß ï áñéèìüò ôùí âçìÜôùí ðïõ áðáéôïýíôáé ãéá ôç ìåôáãëþôôéóç ôïõ óõóôÞìáôïò, óå Ýíá áñéèìü õðo-âçìÜôùí.</para> <para>Óôéò ðåñéóóüôåñåò ðåñéðôþóåéò äåí èá ÷ñåéáóôåß íá äþóåôå êáìßá ðáñÜìåôñï óôï &man.make.1;, êáé Ýôóé ç åíôïëÞ óáò èá ìïéÜæåé ìå ôçí ðáñáêÜôù:</para> <screen>&prompt.root; <userinput>make <replaceable>target</replaceable></userinput></screen> <para>¼ðïõ ôï <replaceable>target</replaceable> èá åßíáé ìéá áðü ôéò ðïëëÝò åðéëïãÝò ìåôáãëþôôéóçò. Ôï ðñþôï target èá ðñÝðåé ðÜíôá íá åßíáé ôï <makevar>buildworld</makevar>.</para> <para>¼ðùò åííïåßôáé êáé áðü ôï üíïìá, ôï <maketarget>buildworld</maketarget> ìåôáãëùôôßæåé Ýíá ðëÞñåò äÝíôñï ìÝóá óôïí êáôÜëïãï <filename>/usr/obj</filename>, åíþ ôï <maketarget>installworld</maketarget>, åãêáèéóôÜ áõôü ôï äÝíôñï óôï ôñÝ÷ïí ìç÷Üíçìá.</para> <para>Ç ýðáñîç äéáöïñåôéêþí åðéëïãþí, åßíáé ÷ñÞóéìç ãéá äýï ëüãïõò. Ðñþôá áðü üëá, óáò åðéôñÝðåé íá åêôåëÝóåôå ôç äéáäéêáóßá ìåôáãëþôôéóçò ìå áóöÜëåéá, ãíùñßæïíôáò üôé äåí ðñüêåéôáé íá åðçñåáóôåß êáíÝíá ôìÞìá ôïõ ôñÝ÷ïíôïò óõóôÞìáôïò óáò. Ç äéáäéêáóßá ìåôáãëþôôéóçò åßíáé <quote>self hosted</quote>, áðïìïíùìÝíç áðü ôçí õðüëïéðç ëåéôïõñãßá ôïõ ìç÷áíÞìáôïò. Ìðïñåßôå Ýôóé íá åêôåëÝóåôå ôï <maketarget>buildworld</maketarget> óå Ýíá ìç÷Üíçìá ðïõ âñßóêåôáé óå êáíïíéêÞ ëåéôïõñãßá (ðïëëáðëþí ÷ñçóôþí) ÷ùñßò íá õðÜñ÷åé öüâïò ðáñåíåñãåéþí. Ùóôüóï, óõíßóôáôáé íá åêôåëÝóåôå ôï <maketarget>installworld</maketarget> óå êáôÜóôáóç ëåéôïõñãßáò åíüò ÷ñÞóôç.</para> <para>Ï äåýôåñïò ëüãïò åßíáé üôé óáò åðéôñÝðåé íá ÷ñçóéìïðïéÞóåôå ðñïóáñôÞóåéò NFS ãéá íá áíáâáèìßóåôå ðïëëÜ ìç÷áíÞìáôá ôïõ äéêôýïõ óáò. Áí Ý÷åôå ôñßá ìç÷áíÞìáôá, ôá <hostid>A</hostid>, <hostid>B</hostid> êáé <hostid>C</hostid> ôá ïðïßá èÝëåôå íá áíáâáèìßóåôå, åêôåëÝóôå ôï <command>make buildworld</command> êáé ôï <command>make installworld</command> óôï ìç÷Üíçìá <hostid>A</hostid>. Ôï <hostid>B</hostid> êáé ôï <hostid>C</hostid> ìðïñïýí íá ðñïóáñôÞóïõí ôïí êáôÜëïãï <filename>/usr/src</filename> êáé ôïí <filename>/usr/obj</filename> áðü ôïí <hostid>A</hostid> ìÝóù NFS, êáé Ýðåéôá ìðïñåßôå íá åêôåëÝóåôå ôï <command>make installworld</command> ãéá íá åãêáôáóôÞóåôå ôï Ýôïéìï ðëÝïí óýóôçìá óôïí <hostid>B</hostid> êáé <hostid>C</hostid>.</para> <para>Áí êáé õðÜñ÷åé áêüìá ôï target <maketarget>world</maketarget>, äåí óõíßóôáôáé ðëÝïí ç ÷ñÞóç ôïõ.</para> <para>ÅêôåëÝóôå ôçí åíôïëÞ:</para> <screen>&prompt.root; <userinput>make buildworld</userinput></screen> <para>Ìðïñåßôå íá êáèïñßóåôå ôçí åðéëïãÞ <option>-j</option> óôçí <command>make</command> þóôå íá åêôåëåóôåß óå ðïëëáðëÝò äéåñãáóßåò. Áõôü åßíáé ðåñéóóüôåñï ÷ñÞóéìï óå ìç÷áíÞìáôá ìå ðïëëïýò åðåîåñãáóôÝò, ùóôüóï êáèþò ôï ìåãáëýôåñï ìÝñïò ôçò äéáäéêáóßáò ìåôáãëþôôéóçò êáèõóôåñåß åîáéôßáò ôïõ óêëçñïý äßóêïõ (IO bound) êáé ü÷é ôçò CPU, ìðïñåß íá óáò öáíåß ÷ñÞóéìï áêüìá êáé óå ìç÷áíÞìáôá ìå Ýíá åðåîåñãáóôÞ.</para> <para>Óå Ýíá ôõðéêü ìç÷Üíçìá ìå ìéá CPU, èá ìðïñïýóáôå íá äþóåôå:</para> <screen>&prompt.root; <userinput>make -j4 buildworld</userinput></screen> <para>Ìå ôçí ðáñáðÜíù åíôïëÞ, ôï &man.make.1; èá ÷ñçóéìïðïéåß ìÝ÷ñé 4 äéåñãáóßåò êÜèå ÷ñïíéêÞ óôéãìÞ. Áðü ôçí åìðåéñßá ðïõ Ý÷ïõìå êáé áðü üôé áíáöÝñïõí ïé ÷ñÞóôåò óôéò ëßóôåò, öáßíåôáé üôé ç ñýèìéóç áõôÞ äßíåé ãåíéêÜ ôçí êáëýôåñç áðüäïóç.</para> <para>Áí Ý÷åôå ìç÷Üíçìá ìå ðïëëïýò åðåîåñãáóôÝò, êáé ÷ñçóéìïðïéåßôå ðõñÞíá ìå äõíáôüôçôá SMP, äïêéìÜóôå ôéìÝò ìåôáîý ôïõ 6 êáé ôïõ 10 ãéá íá äåßôå ðïéá åðéôá÷ýíåé êáëýôåñá ôï áðïôÝëåóìá.</para> </sect3> <sect3> <title>×ñüíïò Ìåôáãëþôôéóçò</title> <indexterm> <primary>rebuilding <quote>world</quote></primary> <secondary>timings</secondary> </indexterm> <para>Ï ÷ñüíïò ðïõ áðáéôåßôáé ãéá ôçí ìåôáãëþôôéóç åðçñåÜæåôáé áðü ðïëëïýò ðáñÜãïíôåò. Ùóôüóï, óå óýã÷ñïíá ìç÷áíÞìáôá ç äéáäéêáóßá äåí êñáôÜåé óõíÞèùò ðáñáðÜíù áðü ìßá Þ äýï þñåò, üôáí ãßíåôáé ìåôáãëþôôéóç ôïõ äÝíôñïõ &os.stable;, êáé ìÜëéóôá ÷ùñßò íá ÷ñåéÜæåôáé íá ãßíïõí åéäéêÝò ñõèìßóåéò Þ êüëðá. Ôï äÝíôñï &os.current; ÷ñåéÜæåôáé ãåíéêÜ ëßãï ðåñéóóüôåñï ÷ñüíï ãéá íá ìåôáãëùôôéóôåß.</para> </sect3> </sect2> <sect2 id="new-kernel"> <title>Ìåôáãëùôôßóôå êáé ÅãêáôáóôÞóôå ÍÝï ÐõñÞíá</title> <indexterm> <primary>kernel</primary> <secondary>compiling</secondary> </indexterm> <para>Ãéá íá åêìåôáëëåõèåßôå ðëÞñùò ôï íÝï óáò óýóôçìá, èá ðñÝðåé íá åðáíáìåôáãëùôôßóåôå ôïí ðõñÞíá. Áõôü åßíáé ðñáêôéêÜ áíáãêáßï, êáèþò êÜðïéåò äïìÝò óôç ìíÞìç ðéèáíþò íá Ý÷ïõí áëëÜîåé, êáé Ýôóé ðñïãñÜììáôá üðùò ôá &man.ps.1; êáé &man.top.1; äåí èá ëåéôïõñãïýí óùóôÜ ìÝ÷ñé íá óõã÷ñïíßóåôå ôïí ðõñÞíá ìå ôçí Ýêäïóç ðçãáßïõ êþäéêá ôïõ âáóéêïý óõóôÞìáôïò.</para> <para>Ï áðëïýóôåñïò êáé ðëÝïí áóöáëÞò ôñüðïò, åßíáé íá ìåôáãëùôôßóåôå êáé íá åãêáôáóôÞóåôå Ýíá ðõñÞíá âáóéóìÝíï óôïí <filename>GENERIC</filename>. Áí êáé ï <filename>GENERIC</filename> ìðïñåß íá ìçí ðåñéÝ÷åé üëåò ôéò áðáñáßôçôåò óõóêåõÝò ãéá ôï óýóôçìá óáò, èá ðñÝðåé íá ðåñéÝ÷åé üôé ÷ñåéÜæåôáé þóôå íá îåêéíÞóåôå îáíÜ ôï óýóôçìá óáò óå êáôÜóôáóç ëåéôïõñãßáò åíüò ÷ñÞóôç. Áõôü åßíáé Ýíá êáëü ôåóô óùóôÞò ëåéôïõñãßáò ôïõ óõóôÞìáôïò. ÌåôÜ ôçí åêêßíçóç ìå ôïí <filename>GENERIC</filename>, êáé áöïý åðáëçèåýóåôå ôç óùóôÞ ëåéôïõñãßá ôïõ óõóôÞìáôïò, ìðïñåßôå íá ìåôáãëùôôßóåôå Ýíá íÝï ðõñÞíá âáóéóìÝíï óôï äéêü óáò ðñïóáñìïóìÝíï áñ÷åßï ñõèìßóåùí.</para> <para>Óôï &os; åßíáé óçìáíôéêü íá åêôåëÝóåôå ôï <link linkend="make-buildworld">build world</link> ðñéí ìåôáãëùôôßóåôå íÝï ðõñÞíá.</para> <note><para>Áí èÝëåôå íá ìåôáãëùôôßóåôå íÝï ðõñÞíá, êáé Ý÷åôå Þäç Ýíá áñ÷åßï ìå ðñïóáñìïóìÝíåò ñõèìßóåéò, ÷ñçóéìïðïéÞóôå áðëþò ôçí åðéëïãÞ <literal>KERNCONF=<replaceable>MYKERNEL</replaceable></literal> ìå ôïí ôñüðï ðïõ öáßíåôáé ðáñáêÜôù:</para> <screen>&prompt.root; <userinput>cd /usr/src</userinput> &prompt.root; <userinput>make buildkernel KERNCONF=<replaceable>MYKERNEL</replaceable></userinput> &prompt.root; <userinput>make installkernel KERNCONF=<replaceable>MYKERNEL</replaceable></userinput></screen> </note> <para>Óçìåéþóôå üôé áí Ý÷åôå áíåâÜóåé ôçí ôéìÞ ôïõ <literal>kern.securelevel</literal> ðÜíù áðü ôï 1, <emphasis>êáé</emphasis> Ý÷åôå èÝóåé ôï flag <literal>noschg</literal> Þ êÜðïéï áíôßóôïé÷ï óôï åêôåëÝóéìï áñ÷åßï ôïõ ðõñÞíá, ìÜëëïí èá ÷ñåéáóôåß íá ìåôáâåßôå óå êáôÜóôáóç ëåéôïõñãßáò åíüò ÷ñÞóôç ãéá íá ÷ñçóéìïðïéÞóåôå ôï <maketarget>installkernel</maketarget>. ÄéáöïñåôéêÜ, ìðïñåßôå íá åêôåëÝóåôå êáé ôéò äýï áõôÝò åíôïëÝò áðü ôçí êáíïíéêÞ êáôÜóôáóç ëåéôïõñãßáò (ðïëëþí ÷ñçóôþí) ÷ùñßò íá äçìéïõñãçèïýí ðñïâëÞìáôá. Äåßôå ôç óåëßäá manual ôïõ &man.init.8; ãéá ëåðôïìÝñåéåò ó÷åôéêÜ ìå ôç ñýèìéóç <literal>kern.securelevel</literal> êáé ôç óåëßäá ôïõ &man.chflags.1; ãéá ëåðôïìÝñåéåò ó÷åôéêÜ ìå ôá äéÜöïñá flags ðïõ ÷ñçóéìïðïéïýíôáé óå áñ÷åßá.</para> </sect2> <sect2 id="new-kernel-singleuser"> <title>ÅðáíåêêéíÞóôå óå ÊáôÜóôáóç Ëåéôïõñãßáò Åíüò ×ñÞóôç</title> <indexterm><primary>single-user mode</primary></indexterm> <para>Èá ðñÝðåé íá åðáíåêêéíÞóåôå óå êáôÜóôáóç ëåéôïõñãßáò åíüò ÷ñÞóôç ãéá íá åðáëçèåýóåôå ôç ëåéôïõñãßá ôïõ íÝïõ ðõñÞíá. Ãéá ôï óêïðü áõôü, ÷ñçóéìïðïéÞóôå ôéò ïäçãßåò ðïõ åßäáìå óôï <xref linkend="makeworld-singleuser"/>.</para> </sect2> <sect2 id="make-installworld"> <title>ÅãêáôáóôÞóôå ôá ÍÝá ÅêôåëÝóéìá ôïõ ÓõóôÞìáôïò</title> <para>Èá ðñÝðåé ôþñá íá ÷ñçóéìïðïéÞóåôå ôï <maketarget>installworld</maketarget> ãéá íá åãêáôáóôÞóåôå ôá íÝá åêôåëÝóéìá ôïõ óõóôÞìáôïò.</para> <para>ÅêôåëÝóôå ôéò ðáñáêÜôù åíôïëÝò:</para> <screen>&prompt.root; <userinput>cd /usr/src</userinput> &prompt.root; <userinput>make installworld</userinput></screen> <note> <para>Áí Ý÷åôå êáèïñßóåé ìåôáâëçôÝò óôç ãñáììÞ åíôïëþí ôïõ <command>make buildworld</command> èá ðñÝðåé íá êáèïñßóåôå ôéò ßäéåò ìåôáâëçôÝò êáé óôçí ãñáììÞ åíôïëþí ôïõ <command>make installworld</command>. Áõôü äåí åßíáé áðáñáßôçôá áëÞèåéá ãéá Üëëåò åðéëïãÝò. Ãéá ðáñÜäåéãìá, ç åðéëïãÞ <option>-j</option> äåí ðñÝðåé ðïôÝ íá ÷ñçóéìïðïéåßôå ìå ôï <maketarget>installworld</maketarget>.</para> <para>Ãéá ðáñÜäåéãìá áí åêôåëÝóåôå:</para> <screen>&prompt.root; <userinput>make -DNO_PROFILE buildworld</userinput></screen> <para>Èá ðñÝðåé íá åãêáôáóôÞóåôå ôï áðïôÝëåóìá ÷ñçóéìïðïéþíôáò:</para> <screen>&prompt.root; <userinput>make -DNO_PROFILE installworld</userinput></screen> <para>äéáöïñåôéêÜ ôï &man.make.1; èá ðñïóðáèÞóåé íá åãêáôáóôÞóåé âéâëéïèÞêåò ìå profiling, ôéò ïðïßåò üìùò äåí ìåôáãëùôôßóáôå êáôÜ ôç äéÜñêåéá ôçò öÜóçò <command>make buildworld</command>.</para> </note> </sect2> <sect2 id="post-installworld-updates"> <title>Åíçìåñþóôå ¼óá Áñ÷åßá äåí Åíçìåñþèçêáí áðü ôï <command>make installworld</command></title> <para>Ç åðáíáìåôáãëþôôéóç ôïõ âáóéêïý óõóôÞìáôïò äåí èá åíçìåñþóåé ïñéóìÝíïõò êáôáëüãïõò (åéäéêüôåñá ôïõò <filename>/etc</filename>, <filename>/var</filename> êáé <filename>/usr</filename>) ìå ôá íÝá Þ áëëáãìÝíá áñ÷åßá ñõèìßóåùí.</para> <para>Ï áðëïýóôåñïò ôñüðïò ãéá íá åíçìåñþóåôå ôá áñ÷åßá áõôÜ åßíáé íá ÷ñçóéìïðïéÞóåôå ôï &man.mergemaster.8;, áí êáé ìðïñåßôå íá ôï êÜíåôå êáé ÷åéñïêßíçôá áí ðñïôéìÜôå. ¶ó÷åôá áðü ôïí ôñüðï ðïõ èá ðñïôéìÞóåôå, âåâáéùèåßôå üôé Ý÷åôå ðÜñåé áíôßãñáöï áóöáëåßáò ôïõ <filename>/etc</filename> óå ðåñßðôùóç ðïõ êÜôé ðÜåé óôñáâÜ.</para> <sect3 id="mergemaster"> <sect3info> <authorgroup> <author> <firstname>Tom</firstname> <surname>Rhodes</surname> <contrib>ÓõíåéóöïñÜ ôïõ </contrib> </author> </authorgroup> </sect3info> <title><command>mergemaster</command></title> <indexterm><primary><command>mergemaster</command></primary></indexterm> <para>Ôï âïçèçôéêü ðñüãñáììá &man.mergemaster.8; åßíáé Ýíá Bourne script ôï ïðïßï èá óáò âïçèÞóåé íá êáèïñßóåôå ôéò äéáöïñÝò ìåôáîý ôùí åãêáôåóôçìÝíùí óôï <filename>/etc</filename> áñ÷åßùí ñõèìßóåùí, êáé ôùí áíôßóôïé÷ùí óôï äÝíôñï ðçãáßïõ êþäéêá óôï <filename>/usr/src/etc</filename>. ÁõôÞ åßíáé êáé ç óõíéóôþìåíç ëýóç ãéá íá åíçìåñþóåôå ôá áñ÷åßá ñõèìßóåùí ôïõ óõóôÞìáôïò ìå ôõ÷üí áëëáãÝò ðïõ Ý÷ïõí ãßíåé óôïí íÝï ðçãáßï êþäéêá.</para> <para>Ãéá íá îåêéíÞóåôå, áðëþò ãñÜøôå <command>mergemaster</command> óôçí ðñïôñïðÞ ôçò ãñáììÞò åíôïëþí êáé ðáñáêïëïõèÞóôå ôçí êáèþò ëåéôïõñãåß. Ôï <command>mergemaster</command> èá äçìéïõñãÞóåé Ýíá ðñïóùñéíü ðåñéâÜëëïí root, áðü ôï <filename>/</filename> êáé êÜôù, êáé èá ôï ãåìßóåé ìå äéÜöïñá áñ÷åßá ñõèìßóåùí ôïõ óõóôÞìáôïò. ¸ðåéôá èá ãßíåé óýãêñéóç áõôþí ôùí áñ÷åßùí ìå ôá áíôßóôïé÷á ðïõ âñßóêïíôáé Þäç åãêáôåóôçìÝíá óôï óýóôçìá óáò. Óôï óçìåßï áõôü, èá óáò äåßîåé ôá áñ÷åßá ðïõ äéáöÝñïõí ìå ìïñöÞ &man.diff.1;, üðïõ ïé ãñáììÝò ðïõ Ý÷ïõí ôñïðïðïéçèåß Þ åßíáé íÝåò èá öáßíïíôáé ìå Ýíá <option>+</option>, åíþ ìå ôï <option>-</option> èá öáßíïíôáé ïé ãñáììÝò ðïõ åßôå áöáéñïýíôáé åíôåëþò Þ ðïõ áíôéêáèßóôáíôáé áðü ìéá íÝá ãñáììÞ. Äåßôå ôç óåëßäá manual ôïõ &man.diff.1; ãéá ðåñéóóüôåñåò ðëçñïöïñßåò ó÷åôéêÜ ìå ôç óýíôáîç ôïõ &man.diff.1; êáé ãéá ôïí ôñüðï ìå ôïí ïðïßï öáßíïíôáé ïé äéáöïñÝò ìåôáîý ôùí áñ÷åßùí.</para> <para>Ôï &man.mergemaster.8; èá óáò äåßîåé Ýðåéôá êÜèå áñ÷åßï ðïõ ðáñïõóéÜæåé äéáöïñÝò, êáé óôï óçìåßï áõôü èá Ý÷åôå ôçí äõíáôüôçôá åßôå íá äéáãñÜøåôå ôï íÝï áñ÷åßï (ôï ïðïßï áíáöÝñåôáé ùò ðñïóùñéíü áñ÷åßï), åßôå íá åãêáôáóôÞóåôå ôï ðñïóùñéíü áñ÷åßï ÷ùñßò íá êÜíåôå óå áõôü êáìéÜ áëëáãÞ, åßôå íá óõã÷ùíåýóåôå ôéò áëëáãÝò ôùí äýï áñ÷åßùí, Þ ôÝëïò íá îáíáäåßôå ôéò äéáöïñÝò ìÝóù ôçò &man.diff.1;.</para> <para>Áí åðéëÝîåôå íá äéáãñÜøåôå ôï ðñïóùñéíü áñ÷åßï, ôï &man.mergemaster.8; èá êáôáëÜâåé üôé åðéèõìåßôå íá äéáôçñÞóåôå ôï ôñÝ÷ïí áñ÷åßï óáò ÷ùñßò áëëáãÝò, êáé íá äéáãñÜøåôå ôç íÝá Ýêäïóç. Ç åðéëïãÞ áõôÞ ãåíéêÜ äåí óõíßóôáôáé, åêôüò áí äåí âëÝðåôå êáíÝíá ëüãï íá áëëÜîåôå ôï ôñÝ÷ïí áñ÷åßï. Ìðïñåßôå íá äåßôå âïÞèåéá ïðïéáäÞðïôå óôéãìÞ êáôÜ ôç äéÜñêåéá ôçò äéáäéêáóßáò, ðëçêôñïëïãþíôáò <keycap>?</keycap> óôçí ðñïôñïðÞ ôïõ &man.mergemaster.8;. Áí áðïöáóßóåôå íá ðáñáëåßøåôå êÜðïéï áñ÷åßï, áõôü èá åìöáíéóôåß îáíÜ ìåôÜ ôï ôÝëïò üëùí ôùí Üëëùí áñ÷åßùí.</para> <para>Áí åðéëÝîåôå íá åãêáôáóôÞóåôå ôï ðñïóùñéíü áñ÷åßï ÷ùñßò áëëáãÝò, áõôü èá áíôéêáôáóôÞóåé ôï Þäç åãêáôåóôçìÝíï óáò áñ÷åßï. ÁõôÞ åßíáé êáé ç êáëýôåñç åðéëïãÞ ãéá ôá áñ÷åßá ôá ïðïßá äåí Ý÷åôå áëëÜîåé åóåßò ÷åéñïêßíçôá.</para> <para>Áí åðéëÝîåôå íá óõã÷ùíåýóåôå ôá äýï áñ÷åßá, èá åìöáíéóôåß Ýíáò åðåîåñãáóôÞò êåéìÝíïõ ìå ôá ðåñéå÷üìåíá êáé ôùí äýï áñ÷åßùí. Ìðïñåßôå ôþñá íá ôá óõã÷ùíåýóåôå ðáñáôçñþíôáò ôáõôü÷ñïíá êáé ôá äýï áñ÷åßá äßðëá-äßðëá, êáé åðéëÝãïíôáò ôìÞìáôá êáé áðü ôá äýï ãéá íá äçìéïõñãÞóåôå ôçí ôåëéêÞ Ýêäïóç. ÊáôÜ ôç óýãêñéóç áõôÞ, ìðïñåßôå íá ÷ñçóéìïðïéÞóåôå ôï ðëÞêôñï <keycap>l</keycap> ãéá íá åðéëÝîåôå ôá ðåñéå÷üìåíá ðïõ öáßíïíôáé óôçí áñéóôåñÞ ðëåõñÜ, Þ ôï <keycap>r</keycap> ãéá ôá áíôßóôïé÷á ðåñéå÷üìåíá óôç äåîéÜ. Ôï ôåëéêü áðïôÝëåóìá èá åßíáé Ýíá áñ÷åßï ðïõ èá áðïôåëåßôáé áðü ôìÞìáôá êáé ôùí äýï áñ÷åßùí, êáé ôï ïðïßï ìðïñåßôå íá åãêáôáóôÞóåôå. Ç åðéëïãÞ áõôÞ ÷ñçóéìïðïéåßôáé óõíÞèùò ãéá áñ÷åßá ôùí ïðïßùí ôï ðåñéå÷üìåíï Ý÷åé ìåôáâëçèåß áðü ôï ÷ñÞóôç.</para> <para>Áí åðéëÝîåôå íá äåßôå îáíÜ ôéò äéáöïñÝò ìÝóù ôçò &man.diff.1;, áõôÝò èá åìöáíéóôïýí áêñéâþò üðùò Ýãéíå êáé ðñéí óáò ñùôÞóåé ôï &man.mergemaster.8; íá åðéëÝîåôå ôé èÝëåôå íá êÜíåôå ìå ôï áñ÷åßï.</para> <para>Ìüëéò ïëïêëçñùèåß ç ëåéôïõñãßá ôïõ &man.mergemaster.8; óôá áñ÷åßá óõóôÞìáôïò, èá óáò ñùôÞóåé ãéá Üëëåò åðéëïãÝò. Ôï &man.mergemaster.8; ßóùò óáò ñùôÞóåé áí èÝëåôå íá áíáäçìéïõñãÞóåôå ôï áñ÷åßï ôùí êùäéêþí (password file), êáé èá ôåëåéþóåé äßíïíôáò óáò ôçí åðéëïãÞ íá äéáãñÜøåôå ôõ÷üí ðñïóùñéíÜ áñ÷åßá ðïõ äçìéïõñãÞèçêáí êáôÜ ôçí äéáäéêáóßá.</para> </sect3> <sect3> <title>×åéñïêßíçôç ÅíçìÝñùóç</title> <para>Áí åðéèõìåßôå íá êÜíåôå ôçí åíçìÝñùóç ÷åéñïêßíçôá, äåí ìðïñåßôå áðëþò íá áíôéãñÜøåôå ôá áñ÷åßá áðü ôïí êáôÜëïãï <filename>/usr/src/etc</filename> óôïí <filename>/etc</filename> êáé íá ðåñéìÝíåôå üôé ôï óýóôçìá óáò èá ëåéôïõñãÞóåé óùóôÜ. ÊÜðïéá áðü áõôÜ ôá áñ÷åßá èá ðñÝðåé íá <quote>åãêáôáóôáèïýí</quote> ðñþôá. Áõôü óõìâáßíåé åðåéäÞ ï êáôÜëïãïò <filename>/usr/src/etc</filename> <emphasis>äåí åßíáé</emphasis> êáíïíéêü áíôßãñáöï ôïõ <filename>/etc</filename>. Åðéðñüóèåôá, õðÜñ÷ïõí áñ÷åßá ôá ïðïßá ðñÝðåé íá âñßóêïíôáé óôïí êáôÜëïãï <filename>/etc</filename>, áëëÜ äåí õðÜñ÷ïõí óôïí <filename>/usr/src/etc</filename>.</para> <para>Áí ÷ñçóéìïðïéåßôå ôï &man.mergemaster.8; (üðùò êáé óõíßóôáôáé), ìðïñåßôå íá äéáâÜóåôå êáôåõèåßáí ôçí <link linkend="updating-upgrading-rebooting">åðüìåíç åíüôçôá</link>.</para> <para>Ï áðëïýóôåñïò ôñüðïò íá ôï êÜíåôå áõôü ÷åéñïêßíçôá, åßíáé íá åãêáôáóôÞóåôå ôá áñ÷åßá óå Ýíá íÝï êáôÜëïãï, êáé Ýðåéôá íá ôá åîåôÜóåôå Ýíá-Ýíá øÜ÷íïíôáò ãéá ôéò áëëáãÝò.</para> <warning> <title>ÊñáôÞóôå ¸íá Áíôßãñáöï Áóöáëåßáò ôïõ Êáôáëüãïõ <filename>/etc</filename></title> <para>Áí êáé èåùñçôéêÜ, ôßðïôá äåí ðñüêåéôáé íá ðåéñÜîåé áõôü ôïí êáôÜëïãï áõôüìáôá, åßíáé ðÜíôá êáëýôåñá íá åßìáóôå óßãïõñïé. Ãéá ôï ëüãï áõôü, áíôéãñÜøôå ôïí õðÜñ÷ïíôá êáôÜëïãï <filename>/etc</filename> óå êÜðïéï áóöáëÝò ìÝñïò. ×ñçóéìïðïéÞóôå ìéá åíôïëÞ üðùò ç ðáñáêÜôù:</para> <screen>&prompt.root; <userinput>cp -Rp /etc /etc.old</userinput></screen> <para>Ç åðéëïãÞ <option>-R</option> ðñáãìáôïðïéåß áíáäñïìéêÞ áíôéãñáöÞ, åíþ ç <option>-p</option> äéáôçñåß ôá äéêáéþìáôá, ôçí éäéïêôçóßá, ôéò çìåñïìçíßåò ôùí áñ÷åßùí, ê.ï.ê.</para> </warning> <para>èá ðñÝðåé íá äçìéïõñãÞóåôå ìéá øåõôï-äïìÞ êáôáëüãùí ãéá íá åãêáôáóôÞóåôå ôï íÝï êáôÜëïãï <filename>/etc</filename> êáé Üëëá áñ÷åßá. Ìéá ëïãéêÞ åðéëïãÞ åßíáé ï êáôÜëïãïò <filename>/var/tmp/root</filename>, êáé êÜôù áðü áõôüí, èá ðñÝðåé åðßóçò íá äçìéïõñãÞóåôå êáé ìéá ïëüêëçñç óåéñÜ áðü ôïõò õðïêáôáëüãïõò ðïõ áðáéôïýíôáé.</para> <screen>&prompt.root; <userinput>mkdir /var/tmp/root</userinput> &prompt.root; <userinput>cd /usr/src/etc</userinput> &prompt.root; <userinput>make DESTDIR=/var/tmp/root distrib-dirs distribution</userinput></screen> <para>Ïé ðáñáðÜíù åíôïëÝò èá äçìéïõñãÞóïõí ôçí áðáéôïýìåíç äïìÞ êáôáëüãùí êáé èá åãêáôáóôÞóïõí ôá áñ÷åßá. ÌåãÜëï ìÝñïò ôùí õðïêáôáëüãùí ðïõ Ý÷ïõí äçìéïõñãçèåß êÜôù áðü ôïí <filename>/var/tmp/root</filename> åßíáé Üäåéïé, êáé ðñÝðåé íá äéáãñáöïýí. Ï áðëïýóôåñïò ôñüðïò ãéá íá ãßíåé áõôü, öáßíåôáé ðáñáêÜôù:</para> <screen>&prompt.root; <userinput>cd /var/tmp/root</userinput> &prompt.root; <userinput>find -d . -type d | xargs rmdir 2>/dev/null</userinput></screen> <para>Áõôü èá äéáãñÜøåé üëïõò ôïõò Üäåéïõò õðïêáôáëüãïõò. (Ç Ýîïäïò óöÜëìáôïò áíáêáôåõèýíåôáé óôï <filename>/dev/null</filename> þóôå íá ìçí åìöáíßæïíôáé óôçí ïèüíç ðñïåéäïðïéÞóåéò ãéá êáôáëüãïõò ðïõ äåí åßíáé Üäåéïé.)</para> <para>Ôþñá, ï <filename>/var/tmp/root</filename> ðåñéÝ÷åé üëá ôá áñ÷åßá ðïõ èá ðñÝðåé íá ôïðïèåôçèïýí óå êáôÜëëçëåò èÝóåéò êÜôù áðü ôïí <filename>/</filename>. Èá ðñÝðåé ôþñá íá äéáôñÝîåôå êáèÝíá áðü áõôÜ ôá áñ÷åßá, êáé íá êáèïñßóåôå ðùò êáèÝíá áðü áõôÜ äéáöÝñåé áðü ôï áíôßóôïé÷ï õðÜñ÷ïí (åãêáôåóôçìÝíï) áñ÷åßï.</para> <para>Óçìåéþóôå üôé êÜðïéá áðü ôá áñ÷åßá ôá ïðïßá Ý÷ïõí åãêáôáóôáèåß óôïí <filename>/var/tmp/root</filename> Ý÷ïõí ìéá áñ÷éêÞ <quote>.</quote>. Ôç óôéãìÞ ðïõ ãñÜöïíôáé áõôÝò ïé ãñáììÝò, ôá ìüíá áñ÷åßá óôá ïðïßá óõìâáßíåé áõôü åßíáé ôá áñ÷åßá åêêßíçóçò ôïõ êåëýöïõò óôïí êáôÜëïãï <filename>/var/tmp/root/</filename> êáé <filename>/var/tmp/root/root/</filename>, áí êáé ìðïñåß íá õðÜñ÷ïõí êáé Üëëá (áíÜëïãá ìå ôï ðüôå äéáâÜæåôå ôï êåßìåíï). Âåâáéùèåßôå üôé ÷ñçóéìïðïéåßôå ôçí åíôïëÞ <command>ls -a</command> ãéá íá ôá äåßôå üëá.</para> <para>Ï áðëïýóôåñïò ôñüðïò ãéá íá óõãêñßíåôå äýï áñ÷åßá, åßíáé íá ÷ñçóéìïðïéÞóåôå ôçí åíôïëÞ &man.diff.1;:</para> <screen>&prompt.root; <userinput>diff /etc/shells /var/tmp/root/etc/shells</userinput></screen> <para>Ç ðáñáðÜíù åíôïëÞ èá óáò äåßîåé ôéò äéáöïñÝò ìåôáîý ôïõ áñ÷åßïõ <filename>/etc/shells</filename> êáé ôïõ íÝïõ áñ÷åßïõ <filename>/var/tmp/root/etc/shells</filename>. ×ñçóéìïðïéÞóôå ôéò äéáöïñÝò áõôÝò ãéá íá áðïöáóßóåôå áí èá ðñÝðåé íá óõã÷ùíåýóåôå ôéò áëëáãÝò ðïõ Ý÷åôå êÜíåé, Þ áðëþò íá áíôéãñÜøåôå ôï ðáëéü óáò áñ÷åßï ðÜíù áðü ôï íÝï.</para> <tip> <title>ÐñïóèÝóôå ôçí Çìåñïìçíßá óôï ¼íïìá ôïõ ÍÝïõ Root Êáôáëüãïõ, (<filename>/var/tmp/root</filename>) ¿óôå íá Ìðïñåßôå Åýêïëá íá Óõãêñßíåôå ÄéáöïñåôéêÝò Åêäüóåéò Ìåôáîý ôïõò</title> <para>Áí ìåôáãëùôôßæåôå óõ÷íÜ ôï âáóéêü óýóôçìá, èá ðñÝðåé åðßóçò íá åíçìåñþíåôå óõ÷íÜ ôïí êáôÜëïãï <filename>/etc</filename>, ôï ïðïßï ìðïñåß íá åßíáé åíï÷ëçôéêü.</para> <para>Ìðïñåßôå íá åðéôá÷ýíåôå áõôÞ ôç äéáäéêáóßá, ôçñþíôáò Ýíá áíôßãñáöï ôïõ ôåëåõôáßïõ óåô áëëáãìÝíùí áñ÷åßùí ôá ïðïßá óõã÷ùíåýóáôå óôïí êáôÜëïãï <filename>/etc</filename>. Ç ðáñáêÜôù äéáäéêáóßá èá óáò äþóåé ìéá éäÝá ãéá ôï ðùò ìðïñåß íá ãßíåé áõôü:</para> <procedure> <step> <para>Ìåôáãëùôôßóôå ôï âáóéêü óýóôçìá üðùò êÜíåôå óõíÞèùò. ¼ôáí èÝëåôå íá åíçìåñþóåôå ôïí <filename>/etc</filename> êáé ôïõò Üëëïõò êáôáëüãïõò, äþóôå óôïí êáôÜëïãï ðñïïñéóìïý Ýíá üíïìá âáóéóìÝíï óôçí ôñÝ÷ïõóá çìåñïìçíßá. Áí ôï êÜíáôå áõôü óôéò 14 Öåâñïõáñßïõ 1998, èá ãñÜöáôå êÜôé óáí ôï ðáñáêÜôù:</para> <screen>&prompt.root; <userinput>mkdir /var/tmp/root-19980214</userinput> &prompt.root; <userinput>cd /usr/src/etc</userinput> &prompt.root; <userinput>make DESTDIR=/var/tmp/root-19980214 \ distrib-dirs distribution</userinput></screen> </step> <step> <para>Óõã÷ùíåýóôå ôéò áëëáãÝò áðü áõôü ôïí êáôÜëïãï, ìå ôïí ôñüðï ðïõ ðåñéãñÜøáìå ðáñáðÜíù.</para> <para><emphasis>Ìçí äéáãñÜøåôå</emphasis> ôïí êáôÜëïãï <filename>/var/tmp/root-19980214</filename> üôáí ôåëåéþóåôå ìå ôçí ðáñáðÜíù äéáäéêáóßá.</para> </step> <step> <para>¼ôáí êáôåâÜóåôå ôçí ôåëåõôáßá Ýêäïóç ôïõ ðçãáßïõ êþäéêá êáé ôïí ìåôáãëùôôßóåôå îáíÜ, áêïëïõèÞóôå ôï âÞìá 1. Áõôü èá óáò äþóåé Ýíá êáôÜëïãï ðïõ ìðïñåß íá ïíïìÜæåôáé <filename>/var/tmp/root-19980221</filename> (áí áíÜìåóá óôéò äýï ìåôáãëùôôßóåéò ðáñåìâÜëëåôáé äéÜóôçìá ìéáò åâäïìÜäáò).</para> </step> <step> <para>Ìðïñåßôå ôþñá íá äåßôå ôéò äéáöïñÝò ðïõ õðÜñ÷ïõí áíÜìåóá óôéò äýï åâäïìÜäåò, ÷ñçóéìïðïéþíôáò ôçí åíôïëÞ &man.diff.1; óå áíáäñïìéêÞ ëåéôïõñãßá ãéá íá äçìéïõñãÞóåôå ôéò äéáöïñÝò ìåôáîý ôùí äýï êáôáëüãùí:</para> <screen>&prompt.root; <userinput>cd /var/tmp</userinput> &prompt.root; <userinput>diff -r root-19980214 root-19980221</userinput></screen> <para>ÔõðéêÜ, áõôü ôï óåô áëëáãþí èá åßíáé ðïëý ìéêñüôåñï áðü áõôü ìåôáîý ôïõ <filename>/var/tmp/root-19980221/etc</filename> êáé ôïõ <filename>/etc</filename>. Êáèþò áõôü ôï óåô áëëáãþí åßíáé ìéêñüôåñï, åßíáé êáé ðéï åýêïëï íá åöáñìüóåôå áõôÝò ôéò áëëáãÝò óôïí êáôÜëïãï <filename>/etc</filename>.</para> </step> <step> <para>Ìðïñåßôå ôþñá íá äéáãñÜøåôå ôïí ðáëéüôåñï áðü ôïõò äýï êáôáëüãïõò <filename>/var/tmp/root-*</filename>:</para> <screen>&prompt.root; <userinput>rm -rf /var/tmp/root-19980214</userinput></screen> </step> <step> <para>ÅðáíáëÜâåôå áõôÞ ôç äéáäéêáóßá êÜèå öïñÜ ðïõ èÝëåôå íá óõã÷ùíåýóåôå ôéò áëëáãÝò óôïí êáôÜëïãï <filename>/etc</filename>.</para> </step> </procedure> <para>Ìðïñåßôå åðßóçò íá ÷ñçóéìïðïéÞóåôå ôçí åíôïëÞ &man.date.1; ãéá íá áõôïìáôïðïéÞóåôå ôçí äçìéïõñãßá ôùí ïíïìÜôùí êáôáëüãùí:</para> <screen>&prompt.root; <userinput>mkdir /var/tmp/root-`date "+%Y%m%d"`</userinput></screen> </tip> </sect3> </sect2> <sect2 id="updating-upgrading-rebooting"> <title>Åðáíåêêßíçóç</title> <para>Ç äéáäéêáóßá Ý÷åé ðëÝïí ïëïêëçñùèåß. Áöïý åðáëçèåýóåôå üôé üëá âñßóêïíôáé óôéò óùóôÝò èÝóåéò, ìðïñåßôå íá åðáíåêêéíÞóåôå ôï óýóôçìá. Ìéá áðëÞ åíôïëÞ &man.shutdown.8; åßíáé åðáñêÞò:</para> <screen>&prompt.root; <userinput>shutdown -r now</userinput></screen> </sect2> <sect2> <title>ÏëïêëÞñùóç</title> <para>¸÷åôå ðëÝïí áíáâáèìßóåé ôï &os; óýóôçìá óáò. Óõã÷áñçôÞñéá.</para> <para>Áí ôá ðñÜãìáôá äåí ðÞãáí åíôåëþò óùóôÜ, åßíáé åýêïëï íá ìåôáãëùôôßóåôå îáíÜ ïðïéïäÞðïôå ôìÞìá ôïõ óõóôÞìáôïò. Ãéá ðáñÜäåéãìá, áí äéáãñÜøåôå êáôÜ ëÜèïò ôï <filename>/etc/magic</filename> ùò ìÝñïò ìéáò áíáâÜèìéóçò Þ óõã÷þíåõóçò ôïõ <filename>/etc</filename>, ç åíôïëÞ &man.file.1; èá óôáìáôÞóåé íá ëåéôïõñãåß. Óôçí ðåñßðôùóç áõôÞ, ç äéüñèùóç åßíáé íá åêôåëÝóåôå:</para> <screen>&prompt.root; <userinput>cd /usr/src/usr.bin/file</userinput> &prompt.root; <userinput>make all install</userinput></screen> </sect2> <sect2 id="updating-questions"> <title>ÅñùôÞóåéò</title> <qandaset> <qandaentry> <question> <para>ÐñÝðåé íá ìåôáãëùôôßóù îáíÜ ïëüêëçñï ôï âáóéêü óýóôçìá óå êÜèå áëëáãÞ;</para> </question> <answer> <para>Äåí õðÜñ÷åé åýêïëç áðÜíôçóç óå áõôü ôï åñþôçìá, êáèþò åîáñôÜôáé áðü ôç öýóç ôçò áëëáãÞò. Ãéá ðáñÜäåéãìá, áí åêôåëÝóåôå ôï <application>CVSup</application>, êáé äåßôå üôé åíçìåñþèçêáí ôá ðáñáêÜôù áñ÷åßá:</para> <screen><filename>src/games/cribbage/instr.c</filename> <filename>src/games/sail/pl_main.c</filename> <filename>src/release/sysinstall/config.c</filename> <filename>src/release/sysinstall/media.c</filename> <filename>src/share/mk/bsd.port.mk</filename></screen> <para>Ôï ðéèáíüôåñï åßíáé üôé äåí ÷ñåéÜæåôáé íá ìåôáãëùôôßóåôå îáíÜ üëï ôï âáóéêü óýóôçìá. Ìðïñåßôå áðëþò íá ìåôáâåßôå óôïõò ó÷åôéêïýò õðïêáôáëüãïõò êáé íá åêôåëÝóåôå ôï <command>make all install</command>, êáé èá Ý÷åôå ôåëåéþóåé. Áí üìùò õðÜñ÷åé êÜðïéá óçìáíôéêÞ áëëáãÞ, ãéá ðáñÜäåéãìá ôï <filename>src/lib/libc/stdlib</filename>, èá ðñÝðåé åßôå íá åðáíáìåôáãëùôôßóåôå ôï âáóéêü óýóôçìá, Þ ôïõëÜ÷éóôïí áõôÜ ôá êïììÜôéá ôá ïðïßá åßíáé óôáôéêÜ óõíäåäåìÝíá (üðùò êáé ïôéäÞðïôå Üëëï Ý÷åôå ðñïóèÝóåé åóåßò êáé ôï ïðïßï åßíáé óôáôéêÜ óõíäåäåìÝíï).</para> <para>ÔåëéêÜ, ç áðüöáóç åßíáé äéêÞ óáò. Ìðïñåß íá åßóôå éêáíïðïéçìÝíïò áí ìåôáãëùôôßæåôå ôï âáóéêü óýóôçìá êÜèå äýï âäïìÜäåò, áöÞíïíôáò ôéò áëëáãÝò íá óõãêåíôñùèïýí óôç äéÜñêåéá áõôïý ôïõ äéáóôÞìáôïò. ¹ ìðïñåß íá èÝëåôå íá ìåôáãëùôôßóåôå ìüíï ôéò áëëáãÝò, áí Ý÷åôå ôçí ðåðïßèçóç üôé ìðïñåßôå íá åíôïðßóåôå üëåò ôéò åîáñôÞóåéò ôïõò.</para> <para>Êáé öõóéêÜ, üëá áõôÜ åîáñôþíôáé áðü ôï ðüóï óõ÷íÜ èÝëåôå íá åíçìåñþíåôå ôï óýóôçìá óáò, êáé áðü ôï áí áêïëïõèåßôå ôï &os.stable; Þ ôï &os.current;.</para> </answer> </qandaentry> <qandaentry> <question> <para>Ç ìåôáãëþôôéóç ìïõ áðÝôõ÷å ìå ðëÞèïò ìçíõìÜôùí signal 11 (Þ ëÜèç ìå Üëëá óÞìáôá). Ôé Ý÷åé óõìâåß;</para> </question> <answer> <indexterm><primary>signal 11</primary></indexterm> <para>Áõôü óõíÞèùò äåß÷íåé ðñïâëÞìáôá õëéêïý. Ç äéáäéêáóßá ìåôáãëþôôéóçò ôïõ âáóéêïý óõóôÞìáôïò åßíáé Ýíáò áðïôåëåóìáôéêüò ôñüðïò íá äïêéìÜóåôå ôï õëéêü óáò óôá üñéá ôïõ, êáé óõ÷íÜ èá äåßîåé ðñïâëÞìáôá ðïõ ó÷åôßæïíôáé ìå ôç ìíÞìç. Ôï ðéï óýíçèåò óýìðôùìá, åßíáé ç áðüôïìç äéáêïðÞ ôçò ìåôáãëþôôéóçò, ìå ôïí ìåôáãëùôôéóôÞ íá öáßíåôáé üôé Ý÷åé ëÜâåé êÜðïéï ìõóôçñéþäåò óÞìá.</para> <para>¸íá óßãïõñï óçìÜäé ãéá ôï ðáñáðÜíù, åßíáé íá åðáíåêêéíÞóåôå ôç äéáäéêáóßá, êáé áõôÞ íá óôáìáôÞóåé óå äéáöïñåôéêü óçìåßï.</para> <para>Óôçí ðåñßðôùóç áõôÞ, äåí õðÜñ÷ïõí êáé ðïëëÜ ðïõ ìðïñåßôå íá êÜíåôå, åêôüò áðü ôï íá áñ÷ßóåôå íá áëëÜæåôå åîáñôÞìáôá óôï ìç÷Üíçìá óáò ìÝ÷ñé íá âñåßôå áõôü ðïõ åßíáé õðáßôéï.</para> </answer> </qandaentry> <qandaentry> <question> <para>Ìðïñþ íá äéáãñÜøù ôï <filename>/usr/obj</filename> üôáí ôåëåéþóù;</para> </question> <answer> <para>Ç óýíôïìç áðÜíôçóç åßíáé íáé.</para> <para>Ôï <filename>/usr/obj</filename> ðåñéÝ÷åé üëá ôá áíôéêåéìåíéêÜ áñ÷åßá ðïõ ðáñÜãïíôáé êáôÜ ôç äéÜñêåéá ôçò ìåôáãëþôôéóçò. ÓõíÞèùò, Ýíá áðü ôá ðñþôá âÞìáôá óôçí äéáäéêáóßá <command>make buildworld</command> åßíáé ç äéáãñáöÞ áõôïý ôïõ êáôáëüãïõ êáé ç áíáäçìéïõñãßá ôïõ. Óôçí ðåñßðôùóç áõôÞ, ôï íá êñáôÞóåôå ôïí êáôÜëïãï <filename>/usr/obj</filename> áöïý Ý÷åôå ôåëåéþóåé, äåí Ý÷åé êáé ðïëý íüçìá, åíþ áí ôïí óâÞóåôå èá êåñäßóåôå Ýíá ìåãÜëï êïììÜôé åëåýèåñïõ ÷þñïõ (ôçí ðáñïýóá óôéãìÞ ðåñßðïõ 2 GB).</para> <para>¼ìùò, áí îÝñåôå ôé êÜíåôå, ìðïñåßôå íá ïäçãÞóåôå ôï <command>make buildworld</command> íá ðáñáëåßøåé áõôü ôï âÞìá. Áõôü èá åðéôá÷ýíåé éäéáßôåñá ôéò íÝåò ìåôáãëùôôßóåéò, êáèþò ôá ðåñéóóüôåñá ôìÞìáôá ôïõ ðçãáßïõ êþäéêá äåí èá ÷ñåéÜæïíôáé îáíÜ ìåôáãëþôôéóç. Ôï ìåéïíÝêôçìá åßíáé üôé ïñéóìÝíåò öïñÝò åìöáíßæïíôáé ðñïâëÞìáôá ðïõ Ý÷ïõí ó÷Ýóç ìå ü÷é êáé ôüóï åìöáíåßò åîáñôÞóåéò, êáé ìðïñåß íá ïäçãÞóïõí óå ìõóôçñéþäç áðïôõ÷ßá ôçò ìåôáãëþôôéóçò. ÔÝôïéá ðñïâëÞìáôá óõ÷íÜ äçìéïõñãïýí <quote>èüñõâï</quote> óôéò ëßóôåò ôïõ &os;, üôáí êÜðïéïò ÷ñÞóôçò ðáñáðïíéÝôáé üôé ç ìåôáãëþôôéóç ôïõ áðïôõã÷Üíåé, ÷ùñßò íá áíôéëáìâÜíåôáé üôé áõôü ïöåßëåôáé óôçí ðñïóðÜèåéá ôïõ íá óõíôïìåýóåé ôçí äéáäéêáóßá.</para> </answer> </qandaentry> <qandaentry> <question> <para>Ìðïñþ íá óõíå÷ßóù ìéá ìåôáãëþôôéóç ðïõ äéÝêïøá;</para> </question> <answer> <para>Áõôü åîáñôÜôáé áðü ôï ðüóï Ý÷åôå ðñï÷ùñÞóåé óôç äéáäéêáóßá ìÝ÷ñé ôç óôéãìÞ ðïõ âñÞêáôå ôï ðñüâëçìá.</para> <para><emphasis>Óå ãåíéêÝò ãñáììÝò</emphasis> (êáé áõôüò äåí åßíáé êáíüíáò ðïõ éó÷ýåé ðÜíôá), ç äéåñãáóßá ôïõ <command>make buildworld</command> ìåôáãëùôôßæåé íÝá áíôßãñáöá âáóéêþí åñãáëåßùí (üðùò ôá &man.gcc.1;, êáé &man.make.1;) êáèþò êáé ôùí âéâëéïèçêþí óõóôÞìáôïò. ¸ðåéôá åãêáèéóôþíôáé áõôÜ ôá åñãáëåßá êáé ïé âéâëéïèÞêåò. Ôá íÝá åñãáëåßá êáé âéâëéïèÞêåò ÷ñçóéìïðïéïýíôáé Ýðåéôá ãéá íá åðáíáìåôáãëùôôßóïõí ôïõò åáõôïýò ôïõò, êáé åãêáèßóôáíôáé îáíÜ. Ïëüêëçñï ôï óýóôçìá (ôï ïðïßï ôþñá ðåñéëáìâÜíåé êáé ôá óõíçèéóìÝíá ðñïãñÜììáôá ÷ñÞóôç üðùò ôï &man.ls.1; Þ ôï &man.grep.1;) åðáíáìåôáãëùôôßæåôáé ÷ñçóéìïðïéþíôáò ôá íÝá áñ÷åßá ôïõ óõóôÞìáôïò.</para> <para>Áí âñßóêåóôå óôï ôåëåõôáßï óôÜäéï, ôï ïðïßï èá ôï ãíùñßæåôå êïéôÜæïíôáò ôçí Ýîïäï ðïõ Ý÷åôå áðïèçêåýóåé, åßíáé ó÷åôéêÜ áóöáëÝò íá êÜíåôå:</para> <screen><emphasis>… fix the problem …</emphasis> &prompt.root; <userinput>cd /usr/src</userinput> &prompt.root; <userinput>make -DNO_CLEAN all</userinput></screen> <para>Ìå ôïí ôñüðï áõôü äåí èá áíáéñÝóåôå ôçí åñãáóßá ðïõ Ý÷åé ãßíåé áðü ôï ðñïçãïýìåíï <command>make buildworld</command>.</para> <para>Áí äåßôå ôï ìÞíõìá:</para> <screen>-------------------------------------------------------------- Building everything.. --------------------------------------------------------------</screen> <para>óôçí Ýîïäï ôçò åíôïëÞò <command>make buildworld</command>, ôüôå åßíáé ìÜëëïí áóöáëÝò íá ðñï÷ùñÞóåôå ìå áõôü ôïí ôñüðï.</para> <para>Áí äåí äåßôå áõôü ôï ìÞíõìá, Þ áí äåí åßóôå óßãïõñïò, ôüôå åßíáé êáëýôåñá íá êÜíåôå ðëÞñç ìåôáãëþôôéóç ðáñÜ íá ìåôáíéþíåôå áñãüôåñá.</para> </answer> </qandaentry> <qandaentry> <question> <para>Ðùò ìðïñþ íá åðéôá÷ýíù ôç ìåôáãëþôôéóç ôïõ âáóéêïý óõóôÞìáôïò;</para> </question> <answer> <itemizedlist> <listitem> <para>ÅêôåëÝóôå ôçí óå êáôÜóôáóç åíüò ÷ñÞóôç.</para> </listitem> <listitem> <para>ÂÜëôå ôïõò êáôáëüãïõò <filename>/usr/src</filename> êáé <filename>/usr/obj</filename> óå äéáöïñåôéêÜ óõóôÞìáôá áñ÷åßùí ôá ïðïßá âñßóêïíôáé êáé óå äéáöïñåôéêïýò öõóéêïýò äßóêïõò. Áí åßíáé äõíáôüí, âÜëôå áõôïýò ôïõò äßóêïõò óå ÷ùñéóôïýò åëåãêôÝò.</para> </listitem> <listitem> <para>Áêüìá êáëýôåñá, ìïéñÜóôå áõôÜ ôá óõóôÞìáôá áñ÷åßùí óå ðïëëáðëïýò äßóêïõò, ÷ñçóéìïðïéþíôáò ôï ðñüãñáììá ïäÞãçóçò &man.ccd.4; (concatenated disk driver, ïäÞãçóçò óõíåíùìÝíùí äßóêùí).</para> </listitem> <listitem> <para>ÁðåíåñãïðïéÞóôå ôï profiling (èÝóôå ôçí ìåôáâëçôÞ <quote>NO_PROFILE=true</quote> óôï <filename>/etc/make.conf</filename>). Åßíáé ó÷åäüí óßãïõñï üôé äåí ôï ÷ñåéÜæåóôå.</para> </listitem> <listitem> <para>Óôï áñ÷åßï <filename>/etc/make.conf</filename>, èÝóôå ôï <makevar>CFLAGS</makevar> óå êÜôé üðùò <option>-O -pipe</option>. Ç âåëôéóôïðïßçóç <option>-O2</option> ÷ñåéÜæåôáé áñêåôÜ ðåñéóóüôåñï ÷ñüíï, êáé ç äéáöïñÜ áðüäïóçò ìåôáîý <option>-O</option> êáé <option>-O2</option> åßíáé óõíÞèùò áìåëçôÝá. Ôï <option>-pipe</option> åðéôñÝðåé óôïí ìåôáãëùôôéóôÞ íá ÷ñçóéìïðïéÞóåé pipes ãéá åðéêïéíùíßá áíôß ãéá ðñïóùñéíÜ áñ÷åßá. Áõôü êáôáíáëþíåé ðåñéóóüôåñç ìíÞìç, áëëÜ ÷ñçóéìïðïéåß ëéãüôåñï ôï óêëçñü äßóêï.</para> </listitem> <listitem> <para>×ñçóéìïðïéÞóôå ôçí åðéëïãÞ <option>-j<replaceable>n</replaceable></option> óôï &man.make.1; þóôå íá åêôåëïýíôáé ðáñÜëëçëá ðïëëáðëÝò äéåñãáóßåò ìåôáãëþôôéóçò. Áõôü óõíÞèùò âïçèÜåé áêüìá êáé óå ðåñßðôùóç ðïõ Ý÷åôå ìç÷Üíçìá ìå Ýíá åðåîåñãáóôÞ.</para> </listitem> <listitem> <para>Ìðïñåßôå íá ðñïóáñôÞóåôå (Þ íá åðáíáðñïóáñôÞóåôå) ôï óýóôçìá áñ÷åßùí óôï ïðïßï åßíáé áðïèçêåõìÝíï ôï <filename>/usr/src</filename> ìå ôçí åðéëïãÞ <option>noatime</option>. Áõôü áðïôñÝðåé ôçí êáôáãñáöÞ çìåñïìçíßáò / þñáò ðñüóâáóçò óôï óýóôçìá áñ÷åßùí. ÊáôÜ ðÜóá ðéèáíüôçôá, äåí ÷ñåéÜæåóôå áõôÞ ôçí ðëçñïöïñßá Ýôóé êáé áëëéþò.</para> <screen>&prompt.root; <userinput>mount -u -o noatime /usr/src</userinput></screen> <warning> <para>Ôï ðáñÜäåéãìá ðñïûðïèÝôåé üôé Ý÷åôå ôï <filename>/usr/src</filename> óôï äéêü ôïõ óýóôçìá áñ÷åßùí. Áí áõôü äåí óõìâáßíåé (áí åßíáé ìÝñïò ôïõ <filename>/usr</filename> ãéá ðáñÜäåéãìá) èá ÷ñåéáóôåß íá ÷ñçóéìïðïéÞóåôå áõôü ôï óçìåßï ðñïóÜñôçóçò, êáé ü÷é ôï <filename>/usr/src</filename>.</para> </warning> </listitem> <listitem> <para>Ìðïñåßôå íá ðñïóáñôÞóåôå (Þ íá åðáíáðñïóáñôÞóåôå) ôï óýóôçìá áñ÷åßùí ðïõ ðåñéÝ÷åé ôï <filename>/usr/obj</filename> ìå ôçí åðéëïãÞ <option>async</option>. Ìå ôïí ôñüðï áõôü, ïé åããñáöÝò óôï äßóêï èá ãßíïíôáé áóýã÷ñïíá. Ìå Üëëá ëüãéá, ïé åããñáöÝò öáßíåôáé üôé ïëïêëçñþíïíôáé Üìåóá, åíþ ç ðñáãìáôéêÞ åããñáöÞ óôï äßóêï ãßíåôáé ëßãá äåõôåñüëåðôá áñãüôåñá. Áõôü åðéôñÝðåé ôçí ïìáäïðïßçóç ôùí åããñáöþí, ôï ïðïßï ìðïñåß íá ðñïóöÝñåé äñáìáôéêÞ âåëôßùóç áðüäïóçò.</para> <warning> <para>Íá Ý÷åôå õðüøéí óáò üôé áõôÞ ç åðéëïãÞ ìðïñåß íá êÜíåé ôï óýóôçìá áñ÷åßùí óáò ðïëý ðéï åõáßóèçôï. Ìå ôçí åðéëïãÞ áõôÞ, õðÜñ÷åé áõîçìÝíç ðéèáíüôçôá ôï óýóôçìá áñ÷åßùí íá âñåèåß óå ìç åðéóêåõÜóéìç êáôÜóôáóç áí õðÜñîåé äéáêïðÞ ñåýìáôïò.</para> <para>Áí ôï óýóôçìá áñ÷åßùí ðåñéÝ÷åé ìüíï ôï <filename>/usr/obj</filename>, ôï ðáñáðÜíù äåí åßíáé ðñüâëçìá. Áí ùóôüóï Ý÷åôå êáé Üëëá ðïëýôéìá äåäïìÝíá óôï ßäéï óýóôçìá áñ÷åßùí, óéãïõñåõôåßôå üôé Ý÷åôå åíçìåñùìÝíá áíôßãñáöá áóöáëåßáò ðñéí åíåñãïðïéÞóåôå áõôÞ ôçí åðéëïãÞ.</para> </warning> <screen>&prompt.root; <userinput>mount -u -o async /usr/obj</userinput></screen> <warning> <para>¼ðùò êáé ðñïçãïõìÝíùò, áí ôï <filename>/usr/obj</filename> äåí åßíáé óýóôçìá áñ÷åßùí áðü ìüíï ôïõ, áíôéêáôáóôÞóôå ôï óôï ðáñÜäåéãìá ìå ôï üíïìá ôïõ ðñáãìáôéêïý óçìåßïõ ðñïóÜñôçóçò.</para> </warning> </listitem> </itemizedlist> </answer> </qandaentry> <qandaentry> <question> <para>Ôé íá êÜíù áí êÜôé ðÜåé óôñáâÜ;</para> </question> <answer> <para>Óéãïõñåõôåßôå üôé ôï ðåñéâÜëëïí óáò äåí Ý÷åé õðïëåßììáôá áðü ðñïçãïýìåíåò ìåôáãëùôôßóåéò. Áõôü åßíáé áñêåôÜ áðëü.</para> <screen>&prompt.root; <userinput>chflags -R noschg /usr/obj/usr</userinput> &prompt.root; <userinput>rm -rf /usr/obj/usr</userinput> &prompt.root; <userinput>cd /usr/src</userinput> &prompt.root; <userinput>make cleandir</userinput> &prompt.root; <userinput>make cleandir</userinput></screen> <para>Íáé, èá ðñÝðåé íá åêôåëÝóåôå ôï <command>make cleandir</command> äýï öïñÝò.</para> <para>ÅðáíåêêéíÞóôå Ýðåéôá üëç ôç äéáäéêáóßá, îåêéíþíôáò ìå ôï <command>make buildworld</command>.</para> <para>Áí Ý÷åôå áêüìá ðñïâëÞìáôá, óôåßëôå ôï ìÞíõìá ëÜèïõò êáé ôçí Ýîïäï ôïõ <command>uname -a</command> óôçí &a.questions;. Íá åßóôå ðñïåôïéìáóìÝíïé íá áðáíôÞóåôå åðéðëÝïí åñùôÞóåéò ó÷åôéêÜ ìå ôçí åãêáôÜóôáóç óáò!</para> </answer> </qandaentry> </qandaset> </sect2> </sect1> <sect1 id="make-delete-old"> <sect1info> <authorgroup> <author> <firstname>Anton</firstname> <surname>Shterenlikht</surname> <contrib>ÂáóéóìÝíï óå óçìåéþóåéò ðïõ ðáñåß÷å ï </contrib> </author> </authorgroup> </sect1info> <title>ÄéáãñáöÞ Ðáñù÷çìÝíùí Áñ÷åßùí, Êáôáëüãùí êáé Âéâëéïèçêþí</title> <indexterm> <primary>Delete obsolete files, directories and libraries</primary> </indexterm> <para>ÊáôÜ ôçí óõíå÷Þ áíÜðôõîç ôïõ &os; åßíáé öõóéïëïãéêü êÜðïéá áñ÷åßá êáôÜ êáéñïýò íá ÷áñáêôçñßæïíôáé ùò ðáñù÷çìÝíá. Áõôü ìðïñåß íá óõìâåß áí ïé ëåéôïõñãßåò ðïõ ðáñåß÷áí õëïðïéïýíôáé ðëÝïí äéáöïñåôéêÜ, áí ï ï áñéèìüò Ýêäïóçò ôçò âéâëéïèÞêçò Ý÷åé áëëÜîåé Þ áêüìá êáé áí Ý÷åé äéáãñáöåß ïñéóôéêÜ áðü ôï óýóôçìá. Óôá áñ÷åßá áõôÜ ðåñéëáìâÜíïíôáé åðßóçò âéâëéïèÞêåò êáôÜëïãïé ðïõ ðñÝðåé íá äéáãñáöïýí üôáí ãßíåôáé áíáâÜèìéóç ôïõ óõóôÞìáôïò. Ôï üöåëïò ãéá ôï ÷ñÞóôç åßíáé üôé ôï óýóôçìá ôïõ äåí ãåìßæåé áðü ðáëéÜ áñ÷åßá ôá ïðïßá êáôáëáìâÜíïõí Ü÷ñçóôï ÷þñï óôï ìÝóï áðïèÞêåõóçò êáé óôï backup. Åðéðñüóèåôá, áí êÜðïéá ðáëéÜ âéâëéïèÞêç åß÷å ðñïâëÞìáôá óôáèåñüôçôáò Þ áóöÜëåéáò èá ðñÝðåé íá ôçí áíáâáèìßóåôå ãéá íá êñáôÞóåôå ôï óýóôçìá óáò óôáèôåñü êáé áóöáëÝò. Ôá áñ÷åßá, ïé êáôÜëïãïé êáé ïé âéâëéïèÞêåò ðïõ èåùñïýíôáé ðáñù÷çìÝíåò öáßíïíôáé óôï <filename>/usr/src/ObsoleteFiles.inc</filename>. Ïé ðáñáêÜôù ïäçãßåò èá óáò âïçèÞóïõí íá äéáãñÜøåôå áõôÜ ôá áñ÷åßá êáôÜ ôç äéáäéêáóßá áíáâÜèìéóçò ôïõ óõóôÞìáôïò.</para> <para>ÕðïèÝôïõìå üôé ÷ñçóéìïðïéåßôå ôá âÞìáôá ðïõ ðåñéãñÜöïíôáé óôï <xref linkend="canonical-build"/>. ÌåôÜ ôçí åðéôõ÷Þ åêôÝëóç ôçò åíôïëÞò <command>make <maketarget>installworld</maketarget></command> êáé ôïõ <command>mergemaster</command> ðïõ áêïëïõèåß, èá ðñÝðåé íá åëÝãîåôå ãéá ðáñù÷çìÝíá áñ÷åßá êáé âéâëéïèÞêåò üðùò öáßíåôáé ðáñáêÜôù:</para> <screen>&prompt.root; <userinput>cd /usr/src</userinput> &prompt.root; <userinput>make check-old</userinput></screen> <para>Áí âñåèïýí ðáñù÷çìÝíá áñ÷åßá, ìðïñåßôå íá ôá äéáãñÜøåôå ìå ôéò ðáñáêÜôù åíôïëÝò:</para> <screen>&prompt.root; <userinput>make delete-old</userinput></screen> <tip> <para>Äåßôå ôï <filename>/usr/src/Makefile</filename> ãéá ðåñéóóüôåñåò åíäéáöÝñïõóåò åðéëïãÝò ôçò <command>make</command>.</para> </tip> <para>Ãéá êÜèå áñ÷åßï ðïõ èá äéáãñáöåß, èá óáò æçôçèåß íá åðéâåâáéþóåôå ôçí åíÝñãåéá. Ìðïñåßôå íá ðáñáëåßøåôå ôçí åñþôçóç êáé íá áöÞóåôå ôï óýóôçìá íá äéáãñÜøåé áõôÜ ôá áñ÷åßá áõôüìáôá ÷ñçóéìïðïéþíôáò ôçí ìåôáâëçôÞ ôïõ make <makevar>BATCH_DELETE_OLD_FILES</makevar> ìå ôïí ôñüðï ðïõ öáßíåôáé ðáñáêÜôù:</para> <screen>&prompt.root; <userinput>make -DBATCH_DELETE_OLD_FILES delete-old</userinput></screen> <warning> <title>Ðñïåéäïðïßçóç</title> <para>Ç äéáãñáöÞ ðáñù÷çìÝíùí áñ÷åßùí, èá ðñïêáëÝóåé äõóëåéôïõñãßá ôùí åöáñìïãþí ðïõ åîáêïëïõèïýí íá âáóßæïíôáé óå áõôÜ. Áõôü óõìâáßíåé éäéáßôåñá óå ðáëéÝò âéâëéïèÞêåò. Óôéò ðåñéóóüôåñåò ðåñéðôþóåéò, èá ðñÝðåé íá åðáíáìåôáãëùôôßóåôå ôá ðñïãñÜììáôá, ports Þ âéâëéïèÞêåò ðïõ ÷ñçóéìïðïéïýóáí ôçí ðáëéÜ âéâëéïèÞêç ðñéí åêôåëÝóåôå ôçí åíôïëÞ <command>make <maketarget>delete-old-libs</maketarget></command>.</para> </warning> <para>Ìðïñåßôå íá âñåßôå ðñïãñÜììáôá ðïõ åëÝã÷ïõí ôéò åîáñôÞóåéò ôùí êïéíü÷ñçóôùí âéâëéïèçêþí óôç ÓõëëïãÞ ôùí Ports, óôï <filename role="package">sysutils/libchk</filename> Þ <filename role="package">sysuilts/bsdadminscripts</filename>.</para> <para>Ïé ðáñù÷çìÝíåò êïéíü÷ñçóôåò âéâëéïèÞêåò ìðïñïýí íá äçìéïõñãÞóïõí ðñïâëÞìáôá ëüãù óõãêñïýóåùí ìå íåþôåñåò åêäüóåéò. Óå áõôÝò ôéò ðåñéðôþóåéò, èá äåßôåé ìçíýìáôá üðùò ôá ðáñáêÜôù:</para> <screen>/usr/bin/ld: warning libz.so.4, needed by /usr/local/lib/libtiff.so, may conflict with libz.so.5 /usr/bin/ld: warning: librpcsvc.so.4, needed by /usr/local/lib/libXext.so may conflict with librpcsvc.so.5</screen> <para>Ãéá íá åðéëýóåôå ôÝôïéïõ åßäïõò ðñïâëÞìáôá, âñåßôå ðïéï port åãêáôÝóôçóå ôçí âéâëéïèÞêç:</para> <screen>&prompt.root; <userinput>pkg_info -W /usr/local/lib/libtiff.so</userinput> /usr/local/lib/libtiff.so was installed by package tiff-3.9.4 &prompt.root; <userinput>pkg_info -W /usr/local/lib/libXext.so</userinput> /usr/local/lib/libXext.so was installed by package libXext-1.1.1,1</screen> <para>¸ðåéôá, áðåãêáôáóôÞóôå, åðáíáìåôáãëùôôßóôå êáé åðáíåãêáôáóÞóôå ôï port. Ãéá íá áõôïìáôïðïéÞóåôå áõôÞ ôç äéáäéêáóßá ìðïñåßôå íá ÷ñçóéìïðïéÞóåôå ôá âïçèçôéêÜ ðñïãñÜììáôá <filename role="package">ports-mgmt/portmaster</filename> êáé <filename role="package">ports-mgmt/portupgrade</filename>. Áöïý âåâáéùèåßôå üôé ïé ðáëéÝò âéâëéïèÞêåò äåí ÷ñçóéìïðïéïýíôáé ðëÝïí áðü êáíÝíá ðñüãñáììá, ìðïñåßôå íá ôéò äéáãñÜøåôå ìå ôçí ðáñáêÜôù åíôïëÞ:</para> <screen>&prompt.root; <userinput>make delete-old-libs</userinput></screen> </sect1> <sect1 id="small-lan"> <sect1info> <authorgroup> <author> <firstname>Mike</firstname> <surname>Meyer</surname> <contrib>ÓõíåéóöïñÜ ôïõ </contrib> </author> </authorgroup> </sect1info> <title>Äéáäéêáóßá ãéá ÐïëëáðëÜ Ìç÷áíÞìáôá</title> <indexterm> <primary>NFS</primary> <secondary>installing multiple machines</secondary> </indexterm> <para>Áí Ý÷åôå ðïëëáðëÜ ìç÷áíÞìáôá óôá ïðïßá ðñüêåéôáé íá ÷ñçóéìïðïéÞóåôå ôï ßäéï äÝíôñï ðçãáßïõ êþäéêá, åßíáé óðáôÜëç ðüñùí (äßóêïõ, äéêôýïõ êáé åðåîåñãáóôÞ) íá åðáíáëáìâÜíåôå óå üëá ôç äéáäéêáóßá áíÜêôçóçò êáé ìåôáãëþôôéóçò. Ç ëýóç åßíáé íá ïñßóåôå Ýíá ìç÷Üíçìá íá åêôåëåß ôï ìåãáëýôåñï ìÝñïò ôçò åñãáóßáò, åíþ ôá õðüëïéðá èá ìðïñïýí íá ôçí áíáêôïýí ìÝóù NFS. Óôçí åíüôçôá áõôÞ èá ðáñïõóéÜóïõìå Ýíá ôñüðï ìå ôïí ïðïßï ìðïñåß íá ãßíåé áõôü.</para> <sect2 id="small-lan-preliminaries"> <title>ÐñïêáôáñêôéêÜ</title> <para>Ðñþôá áðü üëá, áíáãíùñßóôå ôï óåô ôùí ìç÷áíçìÜôùí óôá ïðïßá óêïðåýåôå íá ÷ñçóéìïðïéÞóåôå ôá ßäéá åêôåëÝóéìá. Èá ïíïìÜóïõìå áõôÞ ôçí ïìÜäá <emphasis>óåô ìåôáãëþôôéóçò</emphasis>. ÊÜèå ìç÷Üíçìá ìðïñåß íá Ý÷åé äéêü ôïõ ðñïóáñìïóìÝíï ðõñÞíá, áëëÜ èá Ý÷ïõí üëá ôá ßäéá åêôåëÝóéìá userland. Áðü ôï óåô áõôü, åðéëÝîôå Ýíá ìç÷Üíçìá ôï ïðïßï èá ãßíåé ôï <emphasis>ìç÷Üíçìá ìåôáãëþôôéóçò</emphasis>. Èá åßíáé ôï ìç÷Üíçìá óôï ïðïßï èá ìåôáãëùôôßæåôáé ôï âáóéêü óýóôçìá êáé ï ðõñÞíáò. Ôï éäáíéêü åßíáé íá åðéëÝîåôå Ýíá ãñÞãïñï ìç÷Üíçìá, óôï ïðïßï íá õðÜñ÷åé áñêåôüò åëåýèåñïò ÷ñüíïò óôïí åðåîåñãáóôÞ ãéá íá åêôåëåß ôá <command>make buildworld</command> êáé <command>make buildkernel</command>. Èá ðñÝðåé åðßóçò íá åðéëÝîåôå Ýíá <emphasis>ìç÷Üíçìá äïêéìþí</emphasis> óôï ïðïßï èá äïêéìÜæåôå ôéò åíçìåñþóåéò ëïãéóìéêïý ðñéí ôéò ìåôáöÝñåôå óôçí ðáñáãùãÞ. Ìðïñåß íá åßíáé êáé ôï ßäéï ôï ìç÷Üíçìá ìåôáãëþôôéóçò, áëëÜ áõôü äåí åßíáé áðáñáßôçôï.</para> <para>¼ëá ôá ìç÷áíÞìáôá óôï óåô ìåôáãëþôôéóçò ÷ñåéÜæåôáé íá ðñïóáñôÞóïõí ôï <filename>/usr/obj</filename> êáé ôï <filename>/usr/src</filename> áðü ôï ßäéï ìç÷Üíçìá, êáé óôï ßäéï óçìåßï ðñïóÜñôçóçò. Ôï éäáíéêü åßíáé áõôÜ ôá äýï óõóôÞìáôá áñ÷åßùí íá âñßóêïíôáé óå äéáöïñåôéêü öõóéêü äßóêï óôï ìç÷Üíçìá ìåôáãëþôôéóçò, áëëÜ ìðïñåßôå íá ôá ðñïóáñôÞóåôå ìÝóù NFS áêüìá êáé óå áõôü ôï ìç÷Üíçìá. Áí Ý÷åôå ðïëëáðëÜ óåô ìåôáãëþôôéóçò, ôï <filename>/usr/src</filename> èá ðñÝðåé íá âñßóêåôáé óå Ýíá áðü ôá ìç÷áíÞìáôá ìåôáãëþôôéóçò, êáé íá ðñïóáñôÜôáé óôá õðüëïéðá ìÝóù NFS.</para> <para>ÔÝëïò, âåâáéùèåßôå üôé ôá áñ÷åßá <filename>/etc/make.conf</filename> êáé <filename>/etc/src.conf</filename> óå üëá ôá ìç÷áíÞìáôá ôïõ óåô ìåôáãëþôôéóçò, åßíáé ßäéá ìå ôá áíôßóôïé÷á óôï ìç÷Üíçìá ìåôáãëþôôéóçò. Áõôü óçìáßíåé üôé ôï ìç÷Üíçìá ìåôáãëþôôéóçò èá ðñÝðåé íá ìåôáãëùôôßæåé üëá ôá ôìÞìáôá ôïõ âáóéêïý óõóôÞìáôïò ôá ïðïßá èá åãêáôáóôáèïýí óå êÜèå ìç÷Üíçìá ôïõ óåô. Åðßóçò, óå êÜèå ìç÷Üíçìá óôï óåô ìåôáãëþôôéóçò èá ðñÝðåé íá ïñéóôåß ôï üíïìá ôïõ äéêïý ôïõ ðñïóáñìïóìÝíïõ ðõñÞíá ìÝóù ôçò ìåôáâëçôÞò <makevar>KERNCONF</makevar> óôï <filename>/etc/make.conf</filename>, åíþ êáé ôï ìç÷Üíçìá ìåôáãëþôôéóçò èá ðñÝðåé íá Ý÷åé ìéá ëßóôá üëùí ôùí Üëëùí óôï <makevar>KERNCONF</makevar>, îåêéíþíôáò áðü ôï äéêü ôïõ. Ôï ìç÷Üíçìá ìåôáãëþôôéóçò, èá ðñÝðåé íá Ý÷åé ôá áñ÷åßá ñýèìéóçò ôïõ ðõñÞíá üëùí ôùí Üëëùí ìç÷áíçìÜôùí óôïí êáôÜëïãï <filename>/usr/src/sys/<replaceable>arch</replaceable>/conf</filename> áí ðñüêåéôáé íá ìåôáãëùôôßæåé ôïõò ðõñÞíåò ôïõò.</para> </sect2> <sect2 id="small-lan-base-system"> <title>Ôï Âáóéêü Óýóôçìá</title> <para>¸÷ïíôáò ðñáãìáôïðïéÞóåé üëá ôá ðáñáðÜíù, åßóôå Ýôïéìïò íá ìåôáãëùôôßóåôå ôá ðÜíôá. Ìåôáãëùôôßóôå ôïí ðõñÞíá êáé ôï âáóéêü óýóôçìá üðùò ðåñéãñÜøáìå óôï <xref linkend="make-buildworld"/> ÷ñçóéìïðïéþíôáò ôï ìç÷Üíçìá ìåôáãëþôôéóçò, áëëÜ ìçí åãêáôáóôÞóåôå ôßðïôá. ÌåôÜ ôï ôÝëïò ôçò ìåôáãëþôôéóçò, ÷ñçóéìïðïéÞóôå ôï ìç÷Üíçìá äïêéìþí êáé åãêáôáóôÞóôå ôïí ðõñÞíá ðïõ ìüëéò äçìéïõñãÞóáôå. Áí ôï ìç÷Üíçìá áõôü ðñïóáñôÜ ôï <filename>/usr/src</filename> êáé ôï <filename>/usr/obj</filename> ìÝóù NFS, üôáí ôï åðáíåêêéíÞóåôå óå êáôÜóôáóç åíüò ÷ñÞóôç, èá ÷ñåéáóôåß íá åíåñãïðïéÞóåôå ôï äßêôõï êáé íá ôá ðñïóáñôÞóåôå. Ï åõêïëüôåñïò ôñüðïò ãéá áõôü, åßíáé íá åêêéíÞóåôå óå êáôÜóôáóç ðïëëáðëþí ÷ñçóôþí êáé Ýðåéôá íá åêôåëÝóåôå <command>shutdown now</command> ãéá íá ìåôáâåßôå óå êáôÜóôáóç åíüò ÷ñÞóôç. Ìüëéò ãßíåé áõôü, ìðïñåßôå íá åãêáôáóôÞóåôå ôïí íÝï ðõñÞíá êáé ôï âáóéêü óýóôçìá, êáé íá åêôåëÝóåôå ôï <command>mergemaster</command> üðùò èá êÜíáôå óõíÞèùò. ¼ôáí ôåëåéþóåôå, åðáíåêêéíÞóôå áõôü ôï ìç÷Üíçìá óôçí êáíïíéêÞ ëåéôïõñãßá ðïëëáðëþí ÷ñçóôþí.</para> <para>¼ôáí âåâáéùèåßôå üôé üëá ëåéôïõñãïýí óùóôÜ óôï ìç÷Üíçìá äïêéìþí, ÷ñçóéìïðïéÞóôå ôçí ßäéá äéáäéêáóßá ãéá íá åãêáôáóôÞóåôå ôï íÝï ëïãéóìéêü óå êÜèå Ýíá áðü ôá õðüëïéðá ìç÷áíÞìáôá ôïõ óåô ìåôáãëþôôéóçò.</para> </sect2> <sect2 id="small-lan-ports"> <title>Ports</title> <para>Ìðïñåßôå íá ÷ñçóéìïðïéÞóåôå ôéò ßäéåò éäÝåò êáé ãéá ôï äÝíôñï ôùí ports. Ôï ðñþôï êñßóéìï âÞìá åßíáé íá ðñïóáñôÞóåôå ôï <filename>/usr/ports</filename> áðü ôï ßäéï ìç÷Üíçìá, óå üëá ôá ìç÷áíÞìáôá ôïõ óåô ìåôáãëþôôéóçò. Ìðïñåßôå Ýðåéôá íá ñõèìßóåôå ôï <filename>/etc/make.conf</filename> þóôå íá äéáìïéñÜæïíôáé ôá distfiles. Èá ðñÝðåé íá èÝóåôå ôï <makevar>DISTDIR</makevar> óå Ýíá êïéíü÷ñçóôï êáôÜëïãï, óôïí ïðïßï èá äþóåôå äéêáéþìáôá åããñáöÞò óå ïðïéïäÞðïôå ÷ñÞóôç Ý÷åôå äçëþóåé ùò <username>root</username> óôï NFS. Óå êÜèå ìç÷Üíçìá èá ðñÝðåé åðßóçò íá ïñéóôåß ç ìåôáâëçôÞ <makevar>WRKDIRPREFIX</makevar> þóôå íá äåß÷íåé óå Ýíá ôïðéêü êáôÜëïãï. ÔÝëïò, áí óêïðåýåôå íá ìåôáãëùôôßæåôå êáé íá äéáíÝìåôå Ýôïéìá ðáêÝôá, èá ðñÝðåé íá èÝóåôå ôçí ìåôáâëçôÞ <makevar>PACKAGES</makevar> óå Ýíá êáôÜëïãï, üðùò êÜíáôå êáé ìå ôçí <makevar>DISTDIR</makevar>.</para> </sect2> </sect1> </chapter>