source: trunk/doc/faq/xml/faq.xml @ 19376

Last change on this file since 19376 was 19376, checked in by yeled@…, 14 years ago

add svn:keywords Id

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id
File size: 6.2 KB
Line 
1<?xml version="1.0" encoding="UTF-8"?>
2<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
3  "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
4
5<article>
6  <articleinfo>
7    <title>DarwinPorts FAQ</title>
8
9                <author>
10                        <firstname>Jordan</firstname>
11                        <surname>Hubbard</surname>
12                        <affiliation>
13                                <address><email>jkh@opendarwin.org</email></address>
14                        </affiliation>
15                </author>
16
17                <author>
18                        <firstname>Will</firstname>
19                        <surname>Barton</surname>
20                        <affiliation>
21                                <address><email>wbb4@opendarwin.org</email></address>
22                        </affiliation>
23                </author>
24
25    <copyright>
26      <year>2002</year>
27      <year>2003</year>
28      <year>2004</year>
29      <holder>The OpenDarwin Project</holder>
30    </copyright>
31  </articleinfo>
32
33        <abstract>
34                <para>The DarwinPorts Frequently Asked Questions will attempt to
35                        answer some questions that are often asked about DarwinPorts.</para>
36        </abstract>
37
38        <qandaset defaultlabel="general">
39                <qandadiv>
40                        <title>General Questions</title>
41
42                        <qandaentry>
43                                <question>
44                                        <para>What IS DarwinPorts?</para>
45                                </question>
46
47                                <answer>
48                                        <para>DarwinPorts is probably best described by comparison:  It's
49                                                sort of like the FreeBSD ports collection or fink in
50                                                that it automates the process of building 3rd party
51                                                software for Mac OS X.  It also tracks all dependency
52                                                information for a given piece of software and knows how to
53                                                make it build under Mac OS X and install it to a common
54                                                location, meaning that software installed via DarwinPorts
55                                                doesn't simply scatter itself all over the system or
56                                                require user knowledge of what to install in what order.</para>
57                                </answer>
58                        </qandaentry>
59
60                        <qandaentry>
61                                <question>
62                                        <para>How does DarwinPorts compare to FreeBSD ports?</para>
63                                </question>
64               
65                                <answer>
66                                        <para>FreeBSD ports is essentially implemented as some very
67                                                impressive but hairy BSD make(1)'s macros and can be a
68                                                little opaque and non-extensible from the perspective of
69                                                someone looking to extend or re-factor parts of the system.
70                                                Given that Makefiles aren't the easiest thing to parse, it is
71                                                also harder to "mine" the FreeBSD ports collection for data to
72                                                use for other purposes, such as generating documentation indexes
73                                                or arbitrary front-ends for creating or managing ports.</para>
74                                </answer>
75                        </qandaentry>
76
77                        <qandaentry>
78                                <question>
79                                        <para>Why did DarwinPorts start from scratch rather than
80                                        adopting something like FreeBSD ports?</para>
81                                </question>
82               
83                                <answer>
84                                        <para>Even discounting some of the limitations of FreeBSD
85                                        ports         described above, the "science" of creating
86                                        automated build         systems is rather more complex than it
87                                        looks at first glance and         there's always room for
88                                        fresh approaches to the problem, which         is what we set
89                                        out to do with DarwinPorts. There are certainly         other
90                                        systems, some of which have already been mentioned, which
91                                        have made their own attempts at solving this problem and there
92                                        will likely be many more such systems in the future since
93                                        trying         to find a single solution which pleases
94                                        everyone is rather like         trying to find a single
95                                        programmin language which pleases         everyone - it's more
96                                        or less impossible.  We urge people to         judge
97                                        DarwinPorts' design on its own merits and consider it a
98                                        parallel rather than a competing effort since there's more
99                                        software out there than any one system can ever manage to
100                                        encapsulate and automate. </para>
101                                </answer>
102                        </qandaentry>
103
104                        <qandaentry>
105                                <question>
106                                        <para>Will DarwinPorts run on any other Operating System?</para>
107                                </question>
108               
109                                <answer>
110                                        <para>DarwinPorts was designed to be as portable as possible.
111                                        Though our target platforms are Mac OS X and Darwin,
112                                        DarwinPorts is known to work on FreeBSD, OpenBSD, NetBSD and
113                                        Solaris.  We also provide individual ports with ways of
114                                        specifying platform-specific rules that are only invoked on
115                                        that particular platform.</para>
116                                </answer>
117                        </qandaentry>
118
119                        <qandaentry>
120                                <question>
121                                        <para>Does DarwinPorts also do Package Management?</para>
122                                </question>
123               
124                                <answer>
125                                        <para>DarwinPorts works by first building software and
126                                        installing it into a <varname>destroot</varname>, a
127                                        fake-installation location, then installing it into the
128                                        DarwinPorts prefix (<filename>/opt/local</filename> by
129                                        default).  It records this installation in its registry, and
130                                        you can query the installed port and uninstall it through
131                                        DarwinPorts.  Work is underway to add full package management
132                                        features to DarwinPorts.</para>
133
134                                        <para>You can also have DarwinPorts build a Mac OS X
135                                        <filename>.pkg</filename> file of the port, and install it
136                                        using the Mac OS X Installer.  If that package has
137                                        dependencies, then you can also build a multi-part package
138                                        (<filename>.mpkg</filename>) which contains them as well.  You
139                                        can also build RPM packages from DarwinPorts.</para>
140                                </answer>
141                        </qandaentry>
142
143                        <qandaentry>
144                                <question>
145                                        <para>Why does DarwinPorts install everything into
146                                        <filename>/opt/local</filename> by default?</para>
147                                </question>
148               
149                                <answer>
150                                        <para>First, this location can be set to anything you like by
151                                        editing /etc/ports/ports.conf or specifying
152                                        <varname>--prefix</varname> during the
153                                        <filename>./configure</filename> phase of the DarwinPorts
154                                        installation, so nothing           is fixed
155                                        in place.  Even the basic DarwinPorts infrastructure,
156                                        which installs into /opt/local by           default, can be
157                                        installed elsewhere by overriding the value of
158                                        PREFIX on the command line (see the           README file for
159                                        details).  Second, we had           to pick SOME location for
160                                        things to install into so that they           would not
161                                        collide with system components or things already
162                                        installed in /usr/local, so we elected to           loosely
163                                        follow Sun's convention and go with
164                                        /opt/local.</para>
165                                </answer>
166                        </qandaentry>
167
168                </qandadiv>
169        </qandaset>
170
171        <qandaset defaultlabel="general">
172                <qandadiv>
173                        <title>Common Problems</title>
174
175                </qandadiv>
176        </qandaset>
177</article>
Note: See TracBrowser for help on using the repository browser.