mirror of
https://git.proxmox.com/git/mirror_smartmontools-debian
synced 2025-10-04 07:23:08 +00:00
670 lines
24 KiB
Plaintext
670 lines
24 KiB
Plaintext
Smartmontools installation instructions
|
|
=======================================
|
|
|
|
$Id: INSTALL 4574 2017-10-29 15:41:13Z chrfranke $
|
|
|
|
Please also see the smartmontools home page:
|
|
http://www.smartmontools.org/
|
|
|
|
Table of contents:
|
|
|
|
[1] System requirements
|
|
[2] Installing from SVN
|
|
[3] Installing from source tarball
|
|
[4] Guidelines for different Linux distributions
|
|
[5] Guidelines for FreeBSD
|
|
[6] Guidelines for Darwin
|
|
[7] Guidelines for NetBSD
|
|
[8] Guidelines for Solaris
|
|
[9] Guidelines for Cygwin
|
|
[10] Guidelines for Windows
|
|
[11] Guidelines for OS/2, eComStation
|
|
[12] Guidelines for OpenBSD
|
|
[13] Comments
|
|
[14] Detailed description of ./configure options
|
|
|
|
[1] System requirements
|
|
=======================
|
|
|
|
A) Linux
|
|
|
|
Any Linux distribution will support smartmontools if it has a
|
|
kernel version greater than or equal to 2.2.14. So any recent
|
|
Linux distribution should support smartmontools.
|
|
|
|
B) FreeBSD
|
|
|
|
For FreeBSD support, a 5-current kernel that includes ATAng is
|
|
required in order to support ATA drives. Even current versions of
|
|
ATAng will not support 100% operation, as the SMART status can not
|
|
be reliably retrieved. There is patch pending approval of the
|
|
ATAng driver maintainer that will address this issue.
|
|
|
|
C) Solaris
|
|
|
|
The SCSI code has been tested on a variety of Solaris 8 and 9
|
|
systems. ATA/IDE code only works on SPARC platform. All tested
|
|
kernels worked correctly.
|
|
|
|
D) NetBSD/OpenBSD
|
|
|
|
The code was tested on a 1.6ZG (i.e., 1.6-current) system. It should
|
|
also function under 1.6.1 and later releases (unverified). Currently
|
|
it doesn't support ATA devices on 3ware RAID controllers.
|
|
|
|
E) Cygwin
|
|
|
|
The code was tested on Cygwin 2.9.0-3 x86 and x86_64. It should also
|
|
work on other recent releases.
|
|
|
|
Both Cygwin and Windows versions of smartmontools share the same code
|
|
to access the IDE/ATA or SCSI devices. The information in the "Windows"
|
|
section below also applies to the Cygwin version.
|
|
|
|
F) Windows
|
|
|
|
The code was tested on Windows XP SP3, 2003, Vista, Windows 7, 8, 8.1
|
|
and Windows 10 up to 1709. Support von Windows 9x/ME and NT4 was
|
|
removed after smartmontools 5.43.
|
|
|
|
ATA or SATA devices are supported if the device driver implements
|
|
the SMART IOCTLs or IOCTL_IDE_PASS_THROUGH or IOCTL_ATA_PASS_THROUGH.
|
|
Only the latter provides full pass-through support which is needed
|
|
for all smartmontools features.
|
|
|
|
SATA devices behind a Intel RST driver are accessed through CSMI.
|
|
|
|
SCSI and USB devices are accessed through SPTI. Special driver support
|
|
is not required.
|
|
|
|
G) MacOS/Darwin
|
|
|
|
The code was tested on MacOS 10.3.4. It should work from 10.3
|
|
forwards. It doesn't support 10.2.
|
|
|
|
It's important to know that on 10.3.x, some things don't work
|
|
(see WARNINGS): due to bugs in the libraries used, you cannot run
|
|
a short test or switch SMART support off on a drive; if you try,
|
|
you will just run an extended test or switch SMART support on. So
|
|
don't panic when your "short" test seems to be taking hours.
|
|
|
|
It's also not possible at present to control when the offline
|
|
routine runs. If your drive doesn't have it running automatically by
|
|
default, you can't run it at all.
|
|
|
|
SCSI devices are not currently supported. Detecting the power
|
|
status of a drive is also not currently supported.
|
|
|
|
To summarize this, from another point of view, the things that
|
|
are not supported fall into two categories:
|
|
|
|
* Can't be implemented easily without more kernel-level support,
|
|
so far as I know:
|
|
- running immediate offline, conveyance, or selective tests
|
|
- running any test in captive mode
|
|
- aborting tests
|
|
- switching automatic offline testing on or off
|
|
- support for SCSI
|
|
- checking the power mode [-n Directive of smartd] (this is not
|
|
completely impossible, but not by using a documented API)
|
|
|
|
* Work on 10.4 and later, but not on 10.3:
|
|
- switching off SMART (switching *on* works fine)
|
|
- switching off auto-save (but why would you want to?)
|
|
- running the short test (that leaves you with only the extended test)
|
|
|
|
However, some things do work well. For ATA devices, all the
|
|
informational output is available, unless you want something that only
|
|
an offline test updates. On many newer Mac OS systems, the
|
|
hard drive comes with the offline test switched on by default, so
|
|
even that works.
|
|
|
|
The OS X SAT SMART Driver provides access to SMART data for SAT capable
|
|
USB and Firewire devices:
|
|
https://github.com/kasbert/OS-X-SAT-SMART-Driver
|
|
https://github.com/RJVB/OS-X-SAT-SMART-Driver
|
|
This does not require any smartctl -d TYPE option and should work also
|
|
with older smartmontools releases.
|
|
|
|
H) OS/2, eComStation
|
|
|
|
The code was tested on eComStation 1.1, but it should work on all versions
|
|
of OS/2.
|
|
Innotek LibC 0.5 runtime is required.
|
|
Only ATA disks are supported.
|
|
|
|
[2] Installing from SVN
|
|
=======================
|
|
|
|
Get the sources from the SVN repository:
|
|
svn co http://svn.code.sf.net/p/smartmontools/code/trunk/smartmontools smartmontools
|
|
|
|
Then type:
|
|
./autogen.sh
|
|
and continue with step [3] below, skipping the "unpack the tarball" step.
|
|
|
|
The autogen.sh command is ONLY required when installing from
|
|
SVN. You need GNU Autoconf (version 2.60 or greater), GNU Automake
|
|
(version 1.10 or greater) and their dependencies installed in order
|
|
to run it.
|
|
|
|
[3] Installing from the source tarball
|
|
======================================
|
|
|
|
If you are NOT installing from SVN, then unpack the tarball:
|
|
tar zxvf smartmontools-5.VERSION.tar.gz
|
|
|
|
Then:
|
|
./configure
|
|
make
|
|
make install (you may need to be root to do this)
|
|
|
|
As shown (with no options to ./configure) this defaults to the
|
|
following set of installation directories and other settings:
|
|
|
|
--prefix=/usr/local
|
|
--exec-prefix='${prefix}'
|
|
--sbindir='${exec_prefix}/sbin'
|
|
--sysconfdir='${prefix}/etc'
|
|
--localstatedir='${prefix}/var'
|
|
--datarootdir='${prefix}/share'
|
|
--datadir='${datarootdir}'
|
|
--mandir='${datarootdir}/man'
|
|
--docdir='${datarootdir}/doc/smartmontools'
|
|
--disable-sample
|
|
--with-systemdsystemunitdir=auto
|
|
--with-systemdenvfile=auto
|
|
--with-initscriptdir=auto
|
|
--with-exampledir='${docdir}/examplescripts'
|
|
--with-drivedbdir='${datadir}/smartmontools'
|
|
--with-update-smart-drivedb
|
|
--with-gnupg
|
|
--with-smartdscriptdir='${sysconfdir}'
|
|
--with-smartdplugindir='${smartdscriptdir}/smartd_warning.d'
|
|
--with-scriptpath='/bin:/usr/bin'
|
|
--without-savestates
|
|
--without-attributelog
|
|
--with-os-deps='os_linux.o dev_areca.o' (platform specific)
|
|
--without-selinux
|
|
--with-libcap-ng=auto
|
|
--without-nvme-devicescan
|
|
--without-solaris-sparc-ata (Solaris SPARC only)
|
|
--with-working-snprintf (Windows: guessed)
|
|
--with-mingw-aslr=auto (Windows only)
|
|
--with-cxx11-option=auto
|
|
|
|
These will usually not overwrite existing "distribution" installations on
|
|
Linux Systems since the FHS reserves this area for use by the system
|
|
administrator.
|
|
|
|
For different installation locations or distributions, simply add
|
|
arguments to ./configure as shown in [4] below.
|
|
|
|
If you wish to alter the default C++ compiler flags, add
|
|
CXXFLAGS='your options' to ./configure command.
|
|
|
|
The first output line of smartctl and smartd provides information
|
|
about release number, last SVN checkin date and revison, platform,
|
|
and package. The latter defaults to "(local build)" and can be
|
|
changed by the variable BUILD_INFO, for example:
|
|
make BUILD_INFO='"(Debian 5.39-2)"'
|
|
|
|
[4] Guidelines for different Linux distributions
|
|
================================================
|
|
|
|
Note: Please send corrections/additions to:
|
|
smartmontools-support@listi.jpberlin.de
|
|
|
|
Debian:
|
|
If you don't want to overwrite any distribution package, use:
|
|
./configure
|
|
|
|
Filesystem Hierarchy Standard (FHS, http://www.pathname.com/fhs/):
|
|
./configure --sbindir=/usr/local/sbin \
|
|
--sysconfdir=/usr/local/etc \
|
|
--mandir=/usr/local/man \
|
|
--docdir=/usr/local/share/doc/smartmontools \
|
|
--with-initscriptdir=/usr/local/etc/init.d
|
|
|
|
Red Hat:
|
|
./configure --sbindir=/usr/sbin \
|
|
--sysconfdir=/etc \
|
|
--mandir=/usr/share/man \
|
|
--docdir=/usr/share/doc/smartmontools \
|
|
--with-initscriptdir=/etc/rc.d/init.d
|
|
|
|
Slackware:
|
|
If you don't want to overwrite any "distribution" package, use:
|
|
./configure
|
|
|
|
Otherwise use:
|
|
./configure --sbindir=/usr/sbin \
|
|
--sysconfdir=/etc \
|
|
--mandir=/usr/share/man \
|
|
--docdir=/usr/share/doc/smartmontools \
|
|
--with-initscriptdir=/etc/rc.d
|
|
|
|
And
|
|
removepkg smartmontools smartsuite (only root can do this)
|
|
before make install
|
|
|
|
The init script works on Slackware. You just have to add an entry like
|
|
the following in /etc/rc.d/rc.M or /etc/rc.d/rc.local:
|
|
|
|
if [ -x /etc/rc.d/smartd ]; then
|
|
. /etc/rc.d/smartd start
|
|
fi
|
|
|
|
To disable it:
|
|
chmod 644 /etc/rc.d/smartd
|
|
|
|
For a list of options:
|
|
/etc/rc.d/smartd
|
|
|
|
SuSE:
|
|
./configure --sbindir=/usr/sbin \
|
|
--sysconfdir=/etc \
|
|
--mandir=/usr/share/man \
|
|
--docdir=/usr/share/doc/packages/smartmontools-VERSION \
|
|
--with-initscriptdir=/etc/init.d \
|
|
|
|
[5] Guidelines for FreeBSD
|
|
==========================
|
|
To match the way it will installed when it becomes available as a PORT, use
|
|
the following:
|
|
|
|
./configure --prefix=/usr/local \
|
|
--docdir=/usr/local/share/doc/smartmontools-VERSION \
|
|
--with-initscriptdir=/usr/local/etc/rc.d/ \
|
|
--enable-sample
|
|
|
|
NOTE: --enable-sample will cause the smartd.conf and smartd RC files to
|
|
be installed with the string '.sample' append to the name, so you will end
|
|
up with the following:
|
|
/usr/local/etc/smartd.conf.sample
|
|
/usr/local/etc/rc.d/smartd.sample
|
|
|
|
|
|
[6] Guidelines for Darwin
|
|
=========================
|
|
./configure --with-initscriptdir=/Library/StartupItems
|
|
|
|
If you'd like to build the i386 version on a powerpc machine, you can
|
|
use
|
|
|
|
CXX='g++ -isysroot /Developer/SDKs/MacOSX10.4u.sdk -arch i386' \
|
|
./configure --host=i386-apple-darwin \
|
|
--with-initscriptdir=/Library/StartupItems
|
|
|
|
[7] Guidelines for NetBSD
|
|
=========================
|
|
./configure --prefix=/usr/pkg \
|
|
--docdir=/usr/pkg/share/doc/smartmontools
|
|
|
|
[8] Guidelines for Solaris
|
|
==========================
|
|
|
|
smartmontools has been partially but not completely ported to
|
|
Solaris. It includes complete SCSI support but no ATA or 3ware
|
|
support. It can be compiled with either CC (Sun's C++ compiler)
|
|
or GNU g++.
|
|
|
|
To compile with g++:
|
|
|
|
./configure [args]
|
|
make
|
|
|
|
To compile with Sun CC:
|
|
|
|
env CC=cc CXX=CC ./configure [args]
|
|
make
|
|
|
|
The correct arguments [args] to configure are:
|
|
--sbindir=/usr/sbin \
|
|
--sysconfdir=/etc \
|
|
--mandir=/usr/share/man \
|
|
--docdir=/usr/share/doc/smartmontools-VERSION \
|
|
--with-initscriptdir=/etc/init.d
|
|
|
|
To start the script automatically on bootup, create hardlinks that
|
|
indicate when to start/stop in:
|
|
/etc/rc[S0123].d/
|
|
pointing to /etc/init.d/smartd. Create:
|
|
K<knum>smartd in rcS.d, rc0.d, rc1.d, rc2.d
|
|
S<snum>smartd in rc3.d
|
|
where <knum> is related to <snum> such that the higher snum is the
|
|
lower knum must be.
|
|
|
|
On usual configuration, '95' would be suitable for <snum> and '05'
|
|
for <knum> respectively. If you choose these value, you can
|
|
create hardlinks by:
|
|
|
|
cd /etc
|
|
sh -c 'for n in S 0 1 2; do ln init.d/smartd rc$n.d/K05smartd; done'
|
|
sh -c 'for n in 3 ; do ln init.d/smartd rc$n.d/S95smartd; done'
|
|
|
|
[9] Guidelines for Cygwin
|
|
=========================
|
|
|
|
Same as Red Hat:
|
|
./configure --prefix=/usr \
|
|
--sysconfdir=/etc \
|
|
--mandir='${prefix}/share/man'
|
|
|
|
OR EQUIVALENTLY
|
|
./configure --sbindir=/usr/sbin \
|
|
--sysconfdir=/etc \
|
|
--mandir=/usr/share/man \
|
|
--docdir=/usr/share/doc/smartmontools \
|
|
--with-initscriptdir=/etc/rc.d/init.d
|
|
|
|
Using DOS text file type as default for the working directories ("textmode"
|
|
mount option) is not recommended. Building the binaries and man pages using
|
|
"make" is possible, but "make dist" and related targets work only with UNIX
|
|
file type ("binmode" mount option) set. The "autogen.sh" script prints a
|
|
warning if DOS type is selected.
|
|
|
|
Files may also be checked out with a non-Cygwin SVN client which uses CR/LF
|
|
for svn:eol-style=native. The "autogen.sh" script has svn:eol-style=LF.
|
|
Bash option "-o igncr" is not required.
|
|
|
|
[10] Guidelines for Windows
|
|
===========================
|
|
|
|
To compile statically linked Windows release with MinGW gcc on MSYS, use:
|
|
|
|
./configure
|
|
make
|
|
|
|
Instead of using "make install", copy the .exe files into
|
|
some directory in the PATH.
|
|
|
|
Cross-compile statically linked 32-bit and 64-bit versions with MinGW-w64:
|
|
|
|
./configure --build=$(./config.guess) \
|
|
--host=i686-w64-mingw32
|
|
|
|
./configure --build=$(./config.guess) \
|
|
--host=x86_64-w64-mingw32
|
|
|
|
Tested on Cygwin, Debian and Fedora.
|
|
|
|
|
|
To build the Windows binary distribution, use:
|
|
|
|
make dist-win32
|
|
|
|
This builds the distribution in directory
|
|
|
|
./smartmontools-VERSION.win32/
|
|
|
|
and packs it into
|
|
|
|
./smartmontools-VERSION.win32.zip
|
|
|
|
To create a Windows installer, use:
|
|
|
|
make installer-win32
|
|
|
|
This builds the distribution directory and packs it into the
|
|
self-extracting install program
|
|
|
|
./smartmontools-VERSION.win32-setup.exe
|
|
|
|
The installer is build using the command "makensis" from the NSIS
|
|
package. See http://nsis.sourceforge.net/ for documentation and
|
|
download location.
|
|
|
|
It is also possible to (cross-)build the installer on Linux.
|
|
This was successfully tested on Debian and Fedora with package
|
|
"nsis".
|
|
|
|
To create a combined 32-/64-bit installer, use this in 32-bit build
|
|
directory if 64-build directory is at ../build64:
|
|
|
|
make builddir_win64=../build64 installer_win32
|
|
|
|
To both create and run the (interactive) installer, use:
|
|
|
|
make install-win32
|
|
|
|
Additional make targets are distdir-win32 to build the directory
|
|
only and cleandist-win32 for cleanup.
|
|
|
|
The binary distribution includes all documentation files converted
|
|
to DOS text file format and *.html and *.txt preformatted man pages.
|
|
|
|
To prepare os_win32/vc14 directory for MS Visual Studio C++ 2015 builds,
|
|
use the following on MSYS or Cygwin:
|
|
|
|
mkdir vctmp && cd vctmp
|
|
../configure [... any MinGW option set from above ...]
|
|
make config-vc14
|
|
|
|
The MSVC project files (os_win32/vc14/*) are included in SVN (but not
|
|
in source tarball). The target config-vc14 from a Makefile configured
|
|
for MinGW creates os_win32/vc14/{config.h,smart*.rc,svnversion.h}.
|
|
The configure skript must be run outside of the source directory to
|
|
avoid inclusion of the original config.h.
|
|
|
|
|
|
[11] Guidelines for OS/2, eComStation
|
|
=====================================
|
|
|
|
To compile the OS/2 code, please run
|
|
|
|
./configure
|
|
make
|
|
make install
|
|
|
|
[12] Guidelines for OpenBSD
|
|
===========================
|
|
To match the way it will installed when it becomes available as a PORT, use
|
|
the following:
|
|
|
|
./configure --prefix=/usr/local \
|
|
--sysconfdir=/etc \
|
|
--docdir=/usr/local/share/doc/smartmontools-VERSION \
|
|
--without-initscriptdir \
|
|
--enable-sample
|
|
|
|
NOTE: --enable-sample will cause the smartd.conf and smartd RC files to
|
|
be installed with the string '.sample' append to the name, so you will end
|
|
up with the following:
|
|
/etc/smartd.conf.sample
|
|
|
|
[13] Comments
|
|
============
|
|
|
|
To compile from another directory, you can replace the step
|
|
./configure [options]
|
|
by the following:
|
|
mkdir objdir
|
|
cd objdir
|
|
../configure [options]
|
|
|
|
Man pages contents is platform-specific by default. Info specific to other
|
|
platforms may be not visible. To generate man pages with full contents use:
|
|
|
|
make os_man_filter=
|
|
|
|
To install to another destination (used mainly by package maintainers,
|
|
or to examine the package contents without risk of modifying any
|
|
system files) you can replace the step:
|
|
make install
|
|
with:
|
|
make DESTDIR=/home/myself/smartmontools-package install
|
|
|
|
Use a full path. Paths like ./smartmontools-package may not work.
|
|
|
|
After installing smartmontools, you can read the man pages, and try
|
|
out the commands:
|
|
|
|
man smartd.conf
|
|
man smartctl
|
|
man smartd
|
|
|
|
/usr/sbin/smartctl -s on -o on -S on /dev/sda (only root can do this)
|
|
/usr/sbin/smartctl -a /dev/sda (only root can do this)
|
|
|
|
Note that the default location for the manual pages are
|
|
/usr/share/man/man5 and /usr/share/man/man8. If "man" doesn't find
|
|
them, you may need to add /usr/share/man to your MANPATH environment
|
|
variable.
|
|
|
|
Source and binary packages for Windows are available at
|
|
http://sourceforge.net/projects/smartmontools/files/
|
|
|
|
Refer to http://www.smartmontools.org/wiki/Download for any additional
|
|
download and installation instructions.
|
|
|
|
The following files are installed if ./configure has no options:
|
|
|
|
/usr/local/sbin/smartctl [Executable command-line utility]
|
|
/usr/local/sbin/smartd [Executable daemon]
|
|
/usr/local/sbin/update-smart-drivedb [Drive database update script]
|
|
/usr/local/etc/smartd.conf [Configuration file for smartd daemon]
|
|
/usr/local/etc/smartd_warning.sh [Warning skript for smartd daemon]
|
|
/usr/local/share/man/man5/smartd.conf.5 [Manual page]
|
|
/usr/local/share/man/man8/smartctl.8 [Manual page]
|
|
/usr/local/share/man/man8/smartd.8 [Manual page]
|
|
/usr/local/share/man/man8/update-smart-drivedb.8 [Manual page]
|
|
/usr/local/share/doc/smartmontools/AUTHORS [Information about the authors and developers]
|
|
/usr/local/share/doc/smartmontools/ChangeLog [A log of changes. Also see SVN]
|
|
/usr/local/share/doc/smartmontools/COPYING [GNU General Public License Version 2]
|
|
/usr/local/share/doc/smartmontools/INSTALL [Installation instructions: what you're reading!]
|
|
/usr/local/share/doc/smartmontools/NEWS [Significant enhancements and fixes]
|
|
/usr/local/share/doc/smartmontools/README [Overview]
|
|
/usr/local/share/doc/smartmontools/TODO [Things that need to be done/fixed]
|
|
/usr/local/share/doc/smartmontools/smartd.conf [Example configuration file for smartd]
|
|
/usr/local/share/doc/smartmontools/examplescripts/ [Executable scripts for -M exec of smartd.conf (4 files)]
|
|
/usr/local/share/smartmontools/drivedb.h [Drive database]
|
|
|
|
Due to checks done by '--with-systemdsystemunitdir=auto' and '--with-initscriptdir=auto',
|
|
one of the following files may also be installed:
|
|
|
|
/usr/local/lib/systemd/system/smartd.service [Systemd service file for smartd]
|
|
/usr/local/etc/rc.d/init.d/smartd [Init/Startup script for smartd]
|
|
/usr/local/etc/init.d/smartd [Init/Startup script for smartd]
|
|
/usr/local/etc/rc.d/smartd [Init/Startup script for smartd]
|
|
|
|
If /usr/local/etc/smartd.conf exists and differs from the
|
|
default then the default configuration file is installed as
|
|
/usr/local/etc/smartd.conf.sample instead.
|
|
|
|
The commands:
|
|
|
|
make htmlman
|
|
make pdfman
|
|
make txtman
|
|
|
|
may be used to build .html, .pdf and .txt preformatted man pages.
|
|
These are used by the dist-win32 make target to build the Windows
|
|
distribution.
|
|
The commands also work on other operating system configurations
|
|
if suitable versions of man, man2html and groff are installed.
|
|
On systems without man2html, the following command should work
|
|
if groff is available:
|
|
|
|
make MAN2HTML='groff -man -Thtml' htmlman
|
|
|
|
|
|
Some of the source files are prepared for the documentation
|
|
generator Doxygen (http://www.doxygen.org/). If Doxygen is installed,
|
|
the command:
|
|
|
|
doxygen
|
|
|
|
creates HTML documentation in doc/html and LaTeX documentation
|
|
in doc/latex. If TeX is installed, the following command creates
|
|
a documentation file doc/latex/refman.pdf:
|
|
|
|
( cd doc/latex && make pdf )
|
|
|
|
|
|
[14] Detailed description of arguments to configure command
|
|
===========================================================
|
|
|
|
When you type:
|
|
./configure --help
|
|
a description of available configure options is printed
|
|
[with defaults in square brackets]. See also section [3] above.
|
|
|
|
|
|
The following old configure options are no longer supported:
|
|
|
|
Old option Replacement
|
|
--with-docdir=DIR --docdir=DIR (autoconf >= 2.60)
|
|
--enable-drivedb [no option needed]
|
|
--disable-drivedb --without-drivedbdir
|
|
--enable-savestates --with-savestates[=yes]
|
|
--disable-savestates [no option needed]
|
|
--enable-attrbutelog --with-attributelog[=yes]
|
|
--disable-savestates [no option needed]
|
|
|
|
|
|
The defaults for --with-initscriptdir and --with-systemdsystemunitdir are
|
|
guessed such that the following rules apply:
|
|
- If --prefix=/usr --sysconfdir=/etc is specified, the guessed directories
|
|
should be the defaults used by the current OS or distribution.
|
|
- If --sysconfdir=/etc is NOT specified, the guessed directories should
|
|
always be below ${prefix} or below ${sysconfdir}.
|
|
|
|
Here's an example:
|
|
If you set --prefix=/home/joe and none of the other four
|
|
variables then the different directories that are used would be:
|
|
--sbindir /home/joe/sbin
|
|
--docdir /home/joe/share/doc/smartmontools
|
|
--mandir /home/joe/share/man
|
|
--sysconfdir /home/joe/etc
|
|
--with-exampledir /home/joe/share/doc/smartmontools/examplescripts
|
|
--with-drivedbdir /home/joe/share/smartmontools
|
|
--with-initscriptdir [see below]
|
|
--with-systemdsystemunitdir [see below]
|
|
|
|
If systemd is present (and pkg-config reports /lib/systemd/system
|
|
as the systemdsystemunitdir):
|
|
|
|
--with-initscriptdir [disabled]
|
|
--with-systemdsystemunitdir /home/joe/lib/systemd/system
|
|
|
|
else if /etc/rc.d/init.d exists:
|
|
|
|
--with-initscriptdir /home/joe/etc/rc.d/init.d
|
|
--with-systemdsystemunitdir [disabled]
|
|
|
|
else if /etc/init.d exists:
|
|
|
|
--with-initscriptdir /home/joe/etc/init.d
|
|
--with-systemdsystemunitdir [disabled]
|
|
|
|
else if /etc/rc.d exists:
|
|
|
|
--with-initscriptdir /home/joe/etc/rc.d
|
|
--with-systemdsystemunitdir [disabled]
|
|
|
|
else
|
|
|
|
--with-initscriptdir [disabled]
|
|
--with-systemdsystemunitdir [disabled]
|
|
|
|
|
|
Here are the differences with and without --enable-sample, assuming
|
|
that initscript location is set and no other options specified
|
|
(see above for details)
|
|
|
|
Case 1:
|
|
--enable-sample provided
|
|
==> Files installed are:
|
|
/usr/local/etc/smartd.conf.sample
|
|
/usr/local/etc/rc.d/init.d/smartd.sample
|
|
|
|
Case 2:
|
|
--disable-sample provided or parameter left out
|
|
==> Files installed are:
|
|
/usr/local/etc/smartd.conf
|
|
/usr/local/etc/rc.d/init.d/smartd
|
|
|
|
Additional information about using configure can be found here:
|
|
https://www.gnu.org/software/autoconf/manual/autoconf.html#Running-configure-Scripts
|