mirror of
git://slackware.nl/current.git
synced 2025-01-29 08:36:40 +01:00
646a5c1cbf
a/pkgtools-15.0-noarch-13.txz: Rebuilt. installpkg: default line length for --terselength is the number of columns. removepkg: added --terse mode. upgradepkg: default line length for --terselength is the number of columns. upgradepkg: accept -option in addition to --option. ap/vim-8.1.0026-x86_64-1.txz: Upgraded. d/bison-3.0.5-x86_64-1.txz: Upgraded. e/emacs-26.1-x86_64-1.txz: Upgraded. kde/kopete-4.14.3-x86_64-8.txz: Rebuilt. Recompiled against libidn-1.35. n/conntrack-tools-1.4.5-x86_64-1.txz: Upgraded. n/libnetfilter_conntrack-1.0.7-x86_64-1.txz: Upgraded. n/libnftnl-1.1.0-x86_64-1.txz: Upgraded. n/links-2.16-x86_64-2.txz: Rebuilt. Rebuilt to enable X driver for -g mode. n/lynx-2.8.9dev.19-x86_64-1.txz: Upgraded. n/nftables-0.8.5-x86_64-1.txz: Upgraded. n/p11-kit-0.23.11-x86_64-1.txz: Upgraded. n/ulogd-2.0.7-x86_64-1.txz: Upgraded. n/whois-5.3.1-x86_64-1.txz: Upgraded. xap/network-manager-applet-1.8.12-x86_64-1.txz: Upgraded. xap/vim-gvim-8.1.0026-x86_64-1.txz: Upgraded.
234 lines
9.3 KiB
Text
234 lines
9.3 KiB
Text
################################################################
|
|
# Document: FAQ
|
|
# Purpose : Frequently asked questions
|
|
# Author..: Stuart Winter <mozes@slackware.com>
|
|
################################################################
|
|
# It's small at the moment but if I get any repeated
|
|
# or potentially repeated questions then they'll be added
|
|
# here.
|
|
################################################################
|
|
|
|
|
|
Questions
|
|
---------
|
|
|
|
1. My build script places files into /home, but these are not
|
|
included in the package created by slacktrack. Why?
|
|
|
|
2. Do I really have to remove the existing package before
|
|
building a new version with slacktrack ?
|
|
|
|
3. I want to build a package of DVD libraries and players
|
|
but the players depend on the libraries being installed
|
|
first. How can I build such a package with slacktrack?
|
|
|
|
4. I find that when building packages with slacktrack, a number of
|
|
files are appearing in the package that do not belong there. Why?
|
|
|
|
5. What does slacktrack's --touch-filesystem-first option do?
|
|
why would I need it?
|
|
|
|
6. I can't compile Perl CPAN modules via perl -MCPAN -eshell
|
|
Why ?
|
|
|
|
7. I'm using Slackware v13 (or greater) and I want to create
|
|
package files using one of the other compression methods.
|
|
How can I do that?
|
|
|
|
8. After completing a build using slacktrack, I see
|
|
"You have mail in /var/mail/root"
|
|
but I have no new email.
|
|
|
|
Answers
|
|
-------
|
|
|
|
Q1. My build script places files into /home, but these are not
|
|
included in the package created by slacktrack. Why?
|
|
|
|
A1. slacktrack (by design and thus default) excludes /home
|
|
from being included within the package. The reason for this
|
|
that typically no package shipped should ever contain
|
|
data within /home.
|
|
|
|
Q2. Do I really have to remove the existing package before
|
|
building a new version with slacktrack ?
|
|
|
|
A. No (see my zlib example), but in the majority of cases,
|
|
I'd advise that you do.
|
|
|
|
The reason that my example trackbuild scripts remove the
|
|
existing package first (or bomb out) is because some
|
|
package installations (makefiles) will not install a
|
|
new file onto the filesystem if it's identical to the
|
|
one in the source archive. This means that slacktrack
|
|
will not notice any change in the before and after picture
|
|
of the filesystem; thus your resulting package may
|
|
be missing some files.
|
|
|
|
The way to work around this is:
|
|
1. removepkg the package prior to building;
|
|
2. Use the --touch-filesystem-first option;
|
|
But this option is not recommended since it destroys the
|
|
time stamp information on your system.
|
|
This option should only be used by experts using a disposable
|
|
OS installation.
|
|
Please see FAQ question 5.
|
|
|
|
It's worth noting that Slackware's 'removepkg' program
|
|
won't always remove all files (especially config files
|
|
which are packaged as /etc/file.new and are renamed to
|
|
/etc/file by install/doinst.sh).
|
|
|
|
It shouldn't be too much of an issue though. If it's a
|
|
brand new piece of software that you are building from
|
|
scratch then installwatch will pick up all new files.
|
|
If you're rebuilding a Slackware package using a
|
|
.build script from the source tree then it's worth
|
|
browsing the package's contents ( # cat /var/log/packages/lftp-*
|
|
for example ), then running 'removepkg' and looking at its
|
|
output. If there are any remaining config files then either
|
|
move them to a safe place or delete them before
|
|
building your package with slacktrack.
|
|
|
|
In general though you shouldn't have any problems.
|
|
|
|
|
|
Q3. I want to build a package of DVD libraries and players
|
|
but the players depend on the libraries being installed
|
|
first. How can I build such a package with slacktrack?
|
|
|
|
A. There are two ways.
|
|
1. You either write build scripts for each individual
|
|
library and create packages for each. Once the packages
|
|
have been built, you install them prior to building
|
|
the player.
|
|
You then unarchive all packages into a temporary
|
|
directory and run makepkg over it.
|
|
2. Use slacktrack and build them all one after another as
|
|
you no doubt have originally attempted.
|
|
|
|
I have included example build scripts for a DVD library
|
|
package within slacktrack's source archive.
|
|
|
|
|
|
Q4. I find that when building packages with slacktrack, a number of
|
|
files are appearing in the package that do not belong there. Why?
|
|
|
|
A. The way that slacktrack works is that it:
|
|
[a] takes a snapshot of the files and directories on the file system;
|
|
[b] runs the build script
|
|
[c] makes another snapshot of the files & dirs on the file system;
|
|
[d] compares the two snapshots and determines the differences
|
|
[e] the differences between the two snapshots constitute the package
|
|
contents
|
|
|
|
The problem with this approach is that other running programs can
|
|
make modifications to files & dirs on the file system during the
|
|
build/compilation process. slacktrack will consider these modifications
|
|
to be part of the package -- slacktrack does not directly track what the
|
|
build process does: it *only* compares the differences between the
|
|
file system snapshots.
|
|
|
|
Major culprits for this are:
|
|
cups
|
|
crond (running cron jobs)
|
|
Window Managers and X
|
|
|
|
When using slacktrack you are advised to reduce the number of
|
|
processes to the minimum, and try to ensure that there are no processes
|
|
running which will modify the file system during the build process.
|
|
|
|
If you cannot do this then you there are a number of work arounds:
|
|
[a] Using the -x (--exclude) operator.
|
|
With this operator you can specify a list of
|
|
paths to exclude from the file system snapshots, thus excluding them
|
|
from the resulting package.
|
|
[b] Use the -R (--run-after) operator.
|
|
With this operator you can specify a command that will be run after
|
|
slacktrack has compiled the package contents.
|
|
You may wish to run 'mc' (Midnight Commander) or perhaps just a 'bash'
|
|
shell; this will enable you to inspect and modify the contents of the
|
|
package prior to it being turned into a package file.
|
|
|
|
Q5. What does slacktrack's --touch-filesystem-first option do?
|
|
why would I need it?
|
|
|
|
This option touches all files this pre-set location on the host's
|
|
filesystem:
|
|
/opt /bin /boot /dev /etc /install /lib /sbin /usr /var
|
|
|
|
It *excludes* by default '/lib/udev/devices' since this contains
|
|
live device data that doesn't take kindly to being touched.
|
|
You may see errors from 'touch' about certain binaries, including
|
|
/sbin/vol_id because this is a symlink into /lib/udev/devices.
|
|
|
|
This will touch every file within those directories, destoying all the
|
|
timestamp information.
|
|
This is intended to be used on a throwaway development installation
|
|
that's reinstalled daily or more often. Builds will often leave
|
|
residue strewn about, so don't use this on your "good" machine and
|
|
think you're managing it properly. :-)
|
|
|
|
The reason behind this is that if you run slacktrack and your build
|
|
partially fails, then it will leave some data on the filesystem.
|
|
You then fix the problem and re-try: this time the build may succeed.
|
|
However, if the original data on the filesystem from the first
|
|
part-failed build has *not* changed (ie if it was some static data that
|
|
was copied with cp -a (preserved time stamp & ownership)) between
|
|
the first part-failed build and second successful build, slacktrack
|
|
will miss this data from the final package.
|
|
|
|
This option updates the file stamps contained within standard package
|
|
directories, therefore allowing slacktrack to detect changes
|
|
(even if the data contains an *old* time stamp from 1982, it will still
|
|
detect the difference).
|
|
|
|
***** This is an expert option: Please don't use this option unless you do
|
|
not care about your operating system installation *****
|
|
|
|
|
|
Q6. I can't compile Perl CPAN modules via perl -MCPAN -eshell
|
|
Why ?
|
|
|
|
A. If you get this message:
|
|
Unable to get Terminal Size. The TIOCGWINSZ ioctl didn't work.
|
|
The COLUMNS and LINES environment variables didn't work.
|
|
The resize program didn't work.
|
|
|
|
the answer is to tell slacktrack to turn off logging.
|
|
eg:
|
|
# slacktrack -Qnp foo-1.0-i486-2.tgz ./foo.build
|
|
|
|
Q7. I'm using Slackware v13 (or greater) and I want to create
|
|
package files using one of the other compression methods.
|
|
How can I do that?
|
|
|
|
A. It is 'makepkg' from the 'pkgtools' package which handles
|
|
the compression, based upon the extension of the package
|
|
file name supplied to it.
|
|
|
|
The compression methods & file names are:
|
|
|
|
.tgz - Gzip
|
|
.tbz - Bzip2
|
|
.tlz - LZMA
|
|
.txz - XZ
|
|
|
|
|
|
Examples:
|
|
|
|
# slacktrack -Qp foo-1.0-i486-1.tgz ./foo.build
|
|
# slacktrack -Qp foo-1.0-i486-1.tbz ./foo.build
|
|
# slacktrack -Qp foo-1.0-i486-1.tlz ./foo.build
|
|
# slacktrack -Qp foo-1.0-i486-1.txz ./foo.build
|
|
|
|
|
|
Q8. After completing a build using slacktrack, I see
|
|
"You have mail in /var/mail/root"
|
|
but I have no new email.
|
|
|
|
A. This is because you used the '--touch-filesystem-first' or
|
|
'--touch-filesystem-faster' option at build time.
|
|
This option has touched all of the files on the file system, which
|
|
refreshes their date stamp. The mail notification system works only on
|
|
the date stamp of the mail spools, hence it triggers the message.
|