about the base install

Matt Zimmerman mdz at ubuntu.com
Tue Apr 12 18:30:47 CDT 2005


On Tue, Apr 12, 2005 at 02:48:29PM -0700, Marc MERLIN wrote:

> On Tue, Apr 12, 2005 at 12:58:13PM -0700, Matt Zimmerman wrote:
> > Would be fairly straightforward, at least if we merge the "client-only" and
> > "client+server" use cases into one set of packages.
>  
> that would mean server (fonts, foomatic, cups-server and all the other fun
> printing stuff). The base cups-client should be in the fat base IMO

The current fat base is broadly applicable as a generic server and a subset
of the desktop.  Since cups-as-server and cups-as-client both require cupsd,
and I wouldn't want cupsd to be part of a generic server install, this would
be where ubuntu-extras diverges from the current notion of fat-base.

> > Another tricky one.  What about the PHP modules?  Many web servers don't use
> 
> Since it's a task, I'd make it inclusive. People who want stripped down
> can install without the task.
> For me a task is install all I could need to do X

This seems pretty close to how Debian's tasks are arranged, and they are
sometimes so broad that they aren't usefully applicable to the role of the
system.

> > PHP at all.  Is there much more in this category that can be considered
> > generic enough to be broadly applicable to web servers, besides Apache
> > itself?
> 
> You're welcome to look at the RH package list :)

      <packagereq type="default">crypto-utils</packagereq>
      <packagereq type="default">distcache</packagereq>
      <packagereq type="mandatory">httpd</packagereq>
      <packagereq type="default">httpd-manual</packagereq>
      <packagereq type="optional">httpd-suexec</packagereq>
      <packagereq type="optional">mod_auth_kerb</packagereq>
      <packagereq type="optional">mod_auth_mysql</packagereq>
      <packagereq type="optional">mod_auth_pgsql</packagereq>
      <packagereq type="optional">mod_authz_ldap</packagereq>
      <packagereq type="default">mod_perl</packagereq>
      <packagereq type="default">mod_python</packagereq>
      <packagereq type="default">mod_ssl</packagereq>
      <packagereq type="default">php</packagereq>
      <packagereq type="default">php-ldap</packagereq>
      <packagereq type="optional">php-mysql</packagereq>
      <packagereq type="optional">php-odbc</packagereq>
      <packagereq type="optional">php-pgsql</packagereq>
      <packagereq type="default">squid</packagereq>
      <packagereq type="default">tux</packagereq>
      <packagereq type="default">webalizer</packagereq>

Sure, squid is sometimes used on web servers, but in a small minority of
cases.  suexec is also not something I would inflict on a generic web
server.  squid is particularly uncomfortable in a Debian-derived
environment, where the prevailing wisdom is that services should be
configured and running by default if the package is installed.

Apart from those, this is essentially:

- Apache
- mod_perl and mod_python
- mod_auth*
- PHP
- PHP database backends

which seems like a fairly reasonable grouping for typical usage.  Though
given its security history, the idea of inflicting PHP by default in nearly
any scenario gives me pause.

> > Which devel libs?  If only the C library, this is provided by the
> > existing build-essential metapackage.  If you want the set of
> > development libraries necessary to rebuild the system, that's quite a
> > lot, and not generally applicable to systems in a "development" role.
> 
> I'm not entirely sure what RH does there, but indeed, that means all the
> -devel packages for all libraries on the base system.

Fedora says: "The packages in this group are core libraries needed to
develop applications"

      <packagereq type="default">boost-devel</packagereq>
      <packagereq type="mandatory">bzip2-devel</packagereq>
      <packagereq type="mandatory">curl-devel</packagereq>
      <packagereq type="mandatory">cyrus-sasl-devel</packagereq>
      <packagereq type="mandatory">db4-devel</packagereq>
      <packagereq type="mandatory">db4-utils</packagereq>
      <packagereq type="mandatory">dbus-devel</packagereq>
      <packagereq type="mandatory">dialog</packagereq>
      <packagereq type="mandatory">expat-devel</packagereq>
      <packagereq type="mandatory">gdbm-devel</packagereq>
      <packagereq type="mandatory">gmp-devel</packagereq>
      <packagereq type="mandatory">gpm-devel</packagereq>
      <packagereq type="mandatory">hesiod-devel</packagereq>
      <packagereq type="mandatory">krb5-devel</packagereq>
      <packagereq type="mandatory">krbafs-devel</packagereq>
      <packagereq type="mandatory">kudzu-devel</packagereq>
      <packagereq type="default">libacl-devel</packagereq>
      <packagereq type="default">libattr-devel</packagereq>
      <packagereq type="mandatory">libcap-devel</packagereq>
      <packagereq type="default">libogg-devel</packagereq>
      <packagereq type="default">libselinux-devel</packagereq>
      <packagereq type="mandatory">libtermcap-devel</packagereq>
      <packagereq type="mandatory">libusb-devel</packagereq>
      <packagereq type="mandatory">libuser-devel</packagereq>
      <packagereq type="default">libvorbis-devel</packagereq>
      <packagereq type="mandatory">libxml2-devel</packagereq>
      <packagereq type="mandatory">lockdev-devel</packagereq>
      <packagereq type="mandatory">ncurses-devel</packagereq>
      <packagereq type="mandatory">newt-devel</packagereq>
      <packagereq type="mandatory">openldap-devel</packagereq>
      <packagereq type="mandatory">openssl-devel</packagereq>
      <packagereq type="mandatory">pam-devel</packagereq>
      <packagereq type="mandatory">pciutils-devel</packagereq>
      <packagereq type="mandatory">python-devel</packagereq>
      <packagereq type="mandatory">readline-devel</packagereq>
      <packagereq type="mandatory">rpm-devel</packagereq>
      <packagereq type="mandatory">slang-devel</packagereq>
      <packagereq type="mandatory">swig</packagereq>
      <packagereq type="mandatory">zlib-devel</packagereq>

I don't know how they arrived at this list.  I think we'd need a clear goal
for a development task in order to make it work.

- gcc, g++, libc-dev, make, dpkg-dev (build-essential)

- Be able to build any source package included in the base system
  (build-essential + build-deps of base)

- An approximate greatest common factor for building software from source
  tarballs (build-essential + some subset of -dev packages + autotools)

- Be able to build any source package included in the selected install
  (build-essential + build-deps of base/desktop/server/etc.)

I've added some notes to the wiki for Ubuntu Down Under along these lines.

-- 
 - mdz



More information about the ubuntu-devel mailing list