Q: I use <Debian distro of your choice> and want to get the BBQ, how should I proceed?
A: We need to edit the sources.list and the APT preferences.
/etc/apt/sources.list.d/bbq.list
Code: Select all
## bbq
deb http://linuxbbq.org/repos/apt/debian sid main
## debian
deb http://http.debian.net/debian/ unstable main contrib non-free
## debian experimental - don't shit your pants
deb http://http.debian.net/debian/ experimental main
#deb-src http://http.debian.net/debian/ unstable main
## siduction base (stuff like the towo kernels or deadbeef comes from here, just sayin')
deb http://packages.siduction.org/base unstable main contrib non-free
#deb-src http://packages.siduction.org/base unstable main contrib non-free
## extras (you can have this commented)
#deb http://packages.siduction.org/extra unstable main contrib non-free
#deb-src http://packages.siduction.org/extra unstable main contrib non-free
## user repo (you can have this commented)
#deb http://packages.siduction.org/user unstable main contrib non-free
#deb-src http://packages.siduction.org/user unstable main contrib non-free
## siduction's fixes, please don't change (they saved many asses)
deb http://packages.siduction.org/fixes unstable main contrib non-free
#deb-src http://packages.siduction.org/fixes unstable main contrib non-free
## experimental from siduction (again, don't be a pansy)
deb http://packages.siduction.org/experimental unstable main contrib non-free
#deb-src http://packages.siduction.org/experimental unstable main contrib non-free
Code: Select all
Package: *
Pin: release l=SiductionExperimental
Pin-Priority: 100
Code: Select all
# Apt-file configuration file
# Substitutions are made as follows:
# host => remote hostname
# port => remote port
# uri => complete URI from sources.list
# path => path from /
# dist => the distribution name
# cache => path to the local cache dir
# dest => the destination file name inside the cache dir
# cdrom => cdrom mount point
# Where are located Packages
destination = <host>_<path>_dists_<dist>_Contents-<arch>.gz
# common code blocks can be defined as variables and be used as $check_cmd, etc. later
check_cmd = ( ( gunzip -l "<cache>/<dest>_tmp" >/dev/null 2>&1 || (echo "File is not gzipped."; false) ) && mv "<cache>/<dest>_tmp" "<cache>/<dest>" 2>&1 )
error_cmd = ( rm -f "<cache>/<dest>_tmp"; echo "Can't get <uri>/dists/<dist>/Contents-<arch>.gz" )
post_dl_cmd = $check_cmd || $error_cmd
# Fetch methods using diffindex-download:
# -i : ignore missing files
# -q : be quiet
# -n <num> : download full file if more than <num> patches would be necessary
http = diffindex-download -i "<uri>/dists/<dist>/Contents-<arch>.gz" <cache>/<dest>
https = diffindex-download -i "<uri>/dists/<dist>/Contents-<arch>.gz" <cache>/<dest>
ftp = diffindex-download -i "<uri>/dists/<dist>/Contents-<arch>.gz" <cache>/<dest>
# In debtorrent URLs, we have to replace 'debtorrent' by 'http', and we always download the full file
debtorrent = diffindex-download -i -n 0 "http://<host>:<port|9988><path>/dists/<dist>/Contents-<arch>.gz" <cache>/<dest>
ssh = scp -P <port|22> "<user>@<host>:/<path>/dists/<dist>/Contents-<arch>.gz" "<cache>/<dest>_tmp" && $post_dl_cmd
rsh = rcp -l <user> "<host>:/<path>/dists/<dist>/Contents-<arch>.gz" "<cache>/<dest>_tmp" && $post_dl_cmd
file = cp "/<path>/dists/<dist>/Contents-<arch>.gz" "<cache>/<dest>"
copy = cp "/<path>/dists/<dist>/Contents-<arch>.gz" "<cache>/<dest>"
cdrom = echo "Put CDROM labeled <path> in the cdrom device and press [ENTER]" > /dev/stderr ; read DUMMY ; mount "<cdrom>"; cp "<cdrom>/dists/<dist>/Contents-<arch>.gz" "<cache>/<dest>" ; umount "<cdrom>"
# Schemes that might require user input on 'apt-file update'
# These will be skipped if -N is given
interactive = cdrom rsh ssh
Code: Select all
// apt defaults for siduction
// apt 0.7 introduces automatic behaviour unsuitable for sid, revert this
// auto-remove breaks on meta packages
APT::Get::AutomaticRemove "0";
APT::Get::HideAutoRemove "1";
// Recommends are as of now still abused in many packages
APT::Install-Recommends "0";
APT::Install-Suggests "0";
Debug::pkgAutoRemove "0";
// PDiffs reduce the required download for apt-get update, but increase the
// CPU requirements and quite often fail.
// Acquire::PDiffs "0";
Code: Select all
APT
{
NeverAutoRemove
{
"^firmware-linux.*";
"^linux-firmware$";
"^linux-image.*";
"^kfreebsd-image.*";
"^linux-restricted-modules.*";
"^linux-ubuntu-modules-.*";
"^gnumach$";
"^gnumach-image.*";
};
Never-MarkAuto-Sections
{
"metapackages";
"restricted/metapackages";
"universe/metapackages";
"multiverse/metapackages";
"oldlibs";
"restricted/oldlibs";
"universe/oldlibs";
"multiverse/oldlibs";
};
};
Code: Select all
// Check all packages whether they has critical bugs before they are installed.
// If you don't like it, comment it out.
//DPkg::Pre-Install-Pkgs {"/usr/sbin/apt-listbugs apt || exit 10";};
//DPkg::Tools::Options::/usr/sbin/apt-listbugs "";
//DPkg::Tools::Options::/usr/sbin/apt-listbugs::Version "2";
// AptListbugs::IgnoreRegexp "FTBFS";
Code: Select all
// Pre-configure all packages with debconf before they are installed.
// If you don't like it, comment it out.
DPkg::Pre-Install-Pkgs {"/usr/sbin/dpkg-preconfigure --apt || true";};
Code: Select all
// Unattended-Upgrade::Origins-Pattern controls which packages are
// upgraded.
//
// Lines below have the format format is "keyword=value,...". A
// package will be upgraded only if the values in its metadata match
// all the supplied keywords in a line. (In other words, omitted
// keywords are wild cards.) The keywords originate from the Release
// file, but several aliases are accepted. The accepted keywords are:
// a,archive,suite (eg, "stable")
// c,component (eg, "main", "crontrib", "non-free")
// l,label (eg, "Debian", "Debian-Security")
// o,origin (eg, "Debian", "Unofficial Multimedia Packages")
// n,codename (eg, "jessie", "jessie-updates")
// site (eg, "http.debian.net")
// The available values on the system are printed by the command
// "apt-cache policy", and can be debugged by running
// "unattended-upgrades -d" and looking at the log file.
//
// Within lines unattended-upgrades allows 2 macros whose values are
// derived from /etc/debian_version:
// ${distro_id} Installed origin.
// ${distro_codename} Installed codename (eg, "jessie")
Unattended-Upgrade::Origins-Pattern {
// Codename based matching:
// This will follow the migration of a release through different
// archives (e.g. from testing to stable and later oldstable).
// "o=Debian,n=jessie";
// "o=Debian,n=jessie-updates";
// "o=Debian,n=jessie-proposed-updates";
// "o=Debian,n=jessie,l=Debian-Security";
// Archive or Suite based matching:
// Note that this will silently match a different release after
// migration to the specified archive (e.g. testing becomes the
// new stable).
// "o=Debian,a=stable";
// "o=Debian,a=stable-updates";
// "o=Debian,a=proposed-updates";
"origin=Debian,archive=stable,label=Debian-Security";
};
// List of packages to not update
Unattended-Upgrade::Package-Blacklist {
// "vim";
// "libc6";
// "libc6-dev";
// "libc6-i686";
};
// This option allows you to control if on a unclean dpkg exit
// unattended-upgrades will automatically run
// dpkg --force-confold --configure -a
// The default is true, to ensure updates keep getting installed
//Unattended-Upgrade::AutoFixInterruptedDpkg "false";
// Split the upgrade into the smallest possible chunks so that
// they can be interrupted with SIGUSR1. This makes the upgrade
// a bit slower but it has the benefit that shutdown while a upgrade
// is running is possible (with a small delay)
//Unattended-Upgrade::MinimalSteps "true";
// Install all unattended-upgrades when the machine is shuting down
// instead of doing it in the background while the machine is running
// This will (obviously) make shutdown slower
//Unattended-Upgrade::InstallOnShutdown "true";
// Send email to this address for problems or packages upgrades
// If empty or unset then no email is sent, make sure that you
// have a working mail setup on your system. A package that provides
// 'mailx' must be installed. E.g. "[email protected]"
//Unattended-Upgrade::Mail "root";
// Set this value to "true" to get emails only on errors. Default
// is to always send a mail if Unattended-Upgrade::Mail is set
//Unattended-Upgrade::MailOnlyOnError "true";
// Do automatic removal of new unused dependencies after the upgrade
// (equivalent to apt-get autoremove)
//Unattended-Upgrade::Remove-Unused-Dependencies "false";
// Automatically reboot *WITHOUT CONFIRMATION* if a
// the file /var/run/reboot-required is found after the upgrade
//Unattended-Upgrade::Automatic-Reboot "false";
// Use apt bandwidth limit feature, this example limits the download
// speed to 70kb/sec
//Acquire::http::Dl-Limit "70";
Q: I don't run a siduction kernel, can I still fetch packages from the siduction or BBQ repos?
A: Definitely. You can use any kernel you like (preferably 3.2.0-3 and higher) with a mix of repositories.
Q: I see you have experimental in the sources.list - that might break my system?!
A: Not by default. Usually all packages are sucked from the standard Debian sid sources, and if there are fixes at siduction, they are gotten from there. If you want to install packages from experimental, you have to do this manually and tell APT that you want to install from a certain source. I will *not* give the instructions here to prevent borkage by randomness. A little tip: in APT you can add the -t option to choose a certain repository to download from. Also, there's the APT preferences file.
Q: Can I downgrade packages in Sid?
A: Technically yes, practically it might cause some buttache. Single packages without dependencies are easy to downgrade. If there is a chain of dependencies behind it (for example a certain downgraded package depends on an earlier version of gcc, which in turn depends on an earlier version of binutils, you might run into an PITA situation) -- if you want to sleep with your wife, you don't hang a banana around your hips, do you? Same about Unstable - either you go for it, or not. There's no way to be "a bit pregnant" or "a bit dead".
Q: I need even newer package versions than in Sid or experimental. Add <packagename> to the BBQ!!11
A: You need that, huh? Then go to github or sourceforge, grab yourself the source and happily compile. The BBQ staff is not working on your cotton field.
Q: Can I run a mix of kernels?
A: Yes. You can install as many kernels as there's space for on your drives. They will be listed in the "Extended" menu of GRUB. smxi can do kernel installations for you, sane choices are Debian's stock kernel, the Debian experimental kernels, siduction's towo kernel, the slh Aptosid kernel, the Liquorix kernel and the BBQ realtime kernel.