You are not logged in.
Good Life has refractainstaller and refractasnapshot. The video on the sf site is too small to read anything. Here it is on youtube, showing the install process (with refractainstaller). My thanks to whoever is repsonsible for that video. People have been asking me to make one, and I never did. Is the text guide available anywhere?
https://www.youtube.com/watch?v=T7TC1PlUfck
WARNING: This is a work in progress. There should be enough to get you started. There is more to come. (including formatting this page)
INTRODUCTION
Devuan's live-sdk uses shell scripts to create a live-CD/DVD iso. With no configuration, live-sdk will make a small, cli-only live iso. To create a live iso with your choice of packages and configurations, you can make your own blend. A blend consists of a config file and a blend file, and it may also contain customized files for the live system and deb packages or even source code for items that aren't in the devuan repository.
The config file contains lists of packages to install or remove along with any variables you want to set. The blend file contains functions to control the build process. Some of these functions may be copied from the sdk and customized. The customized version will override the stock version during the build. It's also possible to add functions that don't exist in the sdk.
For a more complex example and some explanation of the parts of the sdk, see:
Heads Developer Guide (PDF) and also
Heads git repository
REQUIREMENTS
You need these packages installed:
git zsh debootstrap sudo xz-utils xorriso squashfs-tools live-boot syslinux-common
You will also need live-build. (I think this can easily be changed to require either syslinux and isolinux or live-build.)
You probably want these, too:
live-config live-config-sysvinit
sudo must be enabled for your user.
(If physical access is not a security issue, do yourself a favor and set sudo with no password, or set the timeout longer than the build time, so you only have to enter the password once.)
These are listed as required by libdevuansdk, but I don't have them, and I'm building isos with live-sdk.
kpartx cgpt
GET LIVE-SDK
git clone https://github.com/parazyd/live-sdk.git
cd live-sdk
git submodule update --initYou can build a minimal live iso without creating a blend. You'll get a very small system with no desktop, the root password will be "toor", there will be no unprivileged user, and most of the standard system utilities will be missing. To do that, use the same commands you would use to build the blend, but leave out the blend_name. You can run this bare build to make sure you have all the requirements; if it doesn't work, you know the problem is not in your blend.
zsh -f
source sdk
load devuan <arch> <blend_name>
build_iso_distSTEPS TO CREATE A BLEND
Each blend gets its own directory in live-sdk/blends. The example we'll use is simple-ice, and we'll make a small live system with icewm and very few apps. We'll be creating two files in live-sdk/blends/simple-ice/. One is config and the other is <blend_name>.blend, or in this example, simple-ice.blend.
Example blends: Download and unpack the tarball in the live-sdk/blends directory. (subject to change and inconsistency with the howto.)
simple-ice: (IceWM with a few extra apps)
jessie-oblx: (Openbox, custom debs, custom boot menu, uefi bootable)
1. Add a line to the blend map in live-sdk/sdk with the blend name and the location where the blend files can be found. $R is the working directory, live-sdk/. It's also possible to use a URL for the location.
blend_map=(
"devuan-live" "$R/blends/devuan-live/devuan-live.blend"
"heads" "$R/../heads.blend"
"simple-ice" "$R/blends/simple-ice/simple-ice.blend"
"jessie-oblx" "$R/blends/jessie-oblx.blend"
)2. Edit config file (live-sdk/blends/simple-ice/config)
Some variables you can use:
image_name
You'll want to give your iso a unique name. The default setting will give you:
devuan_jessie_1.0.0-RC_amd64-live.iso (or -i386-live.iso)
All of these variables except blend_vers are built into the sdk. I added blend_vers for my convenience. It only gets used in the image name here. Whatever you use for an image name will be appended with "-live.iso". You do not need to define the arch here; that will be done when you load the blend at build time.
blend_name="simple-ice"
blend_vers="1.0"
image_name="${blend_name}-${blend_vers}-${arch}"Use this if you want separate bootstrap tarballs for each blend. (Warning: watch your disk space.)
os="$blend_name"Add an unprivileged user to the system, change the default shell from dash to bash, and change the root password with the following lines:
username="user"
userpass="user"
default_shell="/bin/bash"
rootcredentials="root:mypassword"Add some packages.
The package lists exist as arrays in live-sdk. You can add packages to the extra_packages array in the config file as shown in the code box below. Use tabs, not spaces. Note that the syntax here will cause these packages to be added to the extra_packages array if it already exists (i.e. if it's defined elsewhere in the sdk.)
Troubleshooting note: One common reason for a failed build is if one of the listed packages does not exist (or is spelled wrong). It may not be obvious when this happens. Check the logs, but also check your package list.
extra_packages+=(
grub-pc
lsof
bash-completion
texinfo
acpi-support-base
aptitude
apt-listchanges
discover
dnsutils
doc-debian
docutils-common
docutils-doc
ftp
gettext
gnupg2
laptop-detect
mlocate
mutt
ncurses-term
nfs-common
procmail
reportbug
telnet
usbutils
w3m
whois
xorg
xserver-xorg-video-all
xterm
pmount
spacefm
lightdm
icewm
leafpad
)Keep dbus?
EDIT: This probably isn't necessary unless you go deeper into the sdk and change the core_packages and base_packages.
The default purge_packages array contains only dbus. Purging dbus will also remove packages needed for many desktops. Disable or replace that purge with:
purge_packages=()or
purge_packages=(insert your own purge list here)or to add to the default purge list
purge_packages+=(insert your own purge list here)Add custom deb packages:
If you want to install deb packages that aren't in the repository, put them in the blend directory and list them in your config file. In this example, we'll add refractasnapshot-base, refractainstaller-base and palemoon web browser. Palemoon and Yad are listed twice because the packages are arch-specific. Comment out the one you don't want in the build. (NOTE: This is not in the simple-ice example tarball, but you could add your own custom debs list and supply the packages. Uncomment the appropriate lines in blend_preinst() in the blend file. See Step 4. Edit the blend file.)
Package lists will be installed in the order they appear. Packages within a list will be installed alphabetically. In this example, refractainstaller-gui and refractasnapshot-gui depend on yad, so yad must be installed first.
# i386
#custom_deb_packages+=(yad_0.27.0-1_i386.deb palemoon_27.2.0~repack-1_i386.deb)
# amd64
custom_deb_packages+=(yad_0.27.0-1_amd64.deb palemoon_27.2.0~repack-1_amd64.deb)
custom_deb_packages+=(
refractainstaller-base_9.2.1_all.deb
refractainstaller-gui_9.2.1_all.deb
refractasnapshot-base_10.0.2_all.deb
refractasnapshot-gui_10.0.2_all.deb
)3. Add custom files:
System files (including user files)
Custom config files, icons, images or any other files you want to be present in the live system can be added via the rootfs-overlay. Create a directory inside blends/simple-ice called rootfs-overlay. Files that you add should be placed in their relative positions in the directory tree. So, if you wanted to use a custom sources.list, you'd put your custom file in rootfs-overlay/etc/apt/, and it will be added to the system.
The simple-ice example contains an apt config file to install packages without Recommends, modified xdg files to prevent automatic creation of a bunch of directories in your home. (You know the ones I mean - Documents, Music, Video, etc., all of which I consider spam.) There's also a Devuan replacement for the Debian logo in the IceWM applications button and a couple of config files for IceWM.
blends/simple-ice/rootfs-overlay/
├── etc
│ ├── apt
│ │ └── apt.conf.d
│ │ └── 00norecommends
│ ├── X11
│ │ └── icewm
│ │ ├── focus_mode
│ │ └── theme
│ └── xdg
│ ├── user-dirs.conf
│ └── user-dirs.defaults
└── usr
└── share
└── icewm
└── taskbar
└── icewm.xpmFor your own blend, you will need to figure out what files you need and where they go.
Isolinux files
If you want custom isolinux boot files, such as a splash image or boot help files, put them in blends/<blend_name>/isolinux-overlay.
The simple-ice example just has a boot splash image.
4. Edit the blend file (live-sdk/blends/simple-ice/simple-ice.blend)
Start your blend file with the following lines, so that the sdk can find your blend.
BLENDPATH="${BLENDPATH:-$(dirname $0)}"
source $BLENDPATH/configAdd the blend_preinst function. Uncomment the last two lines if you have custom debs to install.
blend_preinst() {
fn blend_preinst
req=(strapdir blend)
ckreq || return 1
notice "executing $blend_name preinst"
add-user "$username" "$userpass"
# notice "copying blend-specific debs"
# cp -fv "$BLENDPATH"/*.deb "$R/extra/custom-packages"
}Add the blend_postinst function. This will copy the rootfs-overlay. If your rootfs-overlay is a git repository, see the heads sdk. This also calls the blend_finalize function, which contains instructions to be run in the chrooted system.
blend_postinst() {
fn blend_postinst
req=(strapdir)
ckreq || return 1
notice "executing $blend_name postinst"
pushd "$strapdir"
sudo rsync -avx "$BLENDPATH"/rootfs-overlay/* . || zerr
popd
blend_finalize || zerr
}Add the blend_finalize function to do the following:
Add user to some groups
Set the default shell.
Give user ownership of their files.
Remove fstab.
Final cleanup and run updatedb. (I commented out the last autoremove. You might need it.)
blend_finalize() {
fn blend_finalize
req=(strapdir)
ckreq || return 1
cat <<EOF | sudo tee ${strapdir}/finalize >/dev/null
#!/bin/sh
# finalize
set -x
exec 2>finalize.log
## perms
for i in cdrom floppy audio dip video plugdev netdev ; do # lpadmin scanner # put this in config file?
gpasswd -a "$username" \${i}
done
chsh -s "$default_shell" "$username"
chown -R 1000:1000 /home/"$username"
# remove fstab for iso. This should probably be in iso_prepare_strap
rm -f /etc/fstab
## cleanup
#apt-get --yes --force-yes autoremove
apt-get clean
updatedb
EOF
chroot-script finalize || zerr
}5. Make it so!
To build a 64-bit version of the example, from the live-sdk directory, run:
zsh -f
source sdk
load devuan amd64 simple-ice
build_iso_distIf all goes well, your iso will be in live-sdk/dist/
Exit the zsh shell.
To make the 32-bit version of the same blend, repeat the commands above, but replace amd64 with i386. (Change custom_deb_packages if you have arch-specific packages to install.)
Happy Hacking!
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
EXAMPLE BLEND LAYOUT
simple-ice/
├── config
├── isolinux-overlay
│ └── splash.png
├── rootfs-overlay
│ ├── etc
│ │ ├── apt
│ │ │ └── apt.conf.d
│ │ │ └── 00norecommends
│ │ ├── X11
│ │ │ └── icewm
│ │ │ ├── focus_mode
│ │ │ └── theme
│ │ └── xdg
│ │ ├── user-dirs.conf
│ │ └── user-dirs.defaults
│ └── usr
│ └── share
│ └── icewm
│ └── taskbar
│ └── icewm.xpm
└── simple-ice.blendSpecial instructions for ascii (testing)
Add to the blend config file:
release="ascii"Right now (March 2017) rsyslog is getting removed at the end of the build and alsa-base does not exist. Workaround is to insert the following line into the debootstrap command at lines 42-44 of zlibs/bootstrap.
--include=busybox,busybox-syslogd --exclude=rsyslog,alsa-base \ ...and let me know if this changes, so I can keep this doc current. Thanks.
Nice to see you around, miyo!
I tried building miyolinux with devuan's live-sdk, but I failed to get all the configs right. Haven't had time, but I'd like to get back to that and arrange all the blend files so that they can be dropped into one directory in live-sdk, and then anyone will be able to make their own "make it your own", always with the latest updates. (packages are pulled from the repo for the build.)
live-sdk can be automated, and you don't need to keep two installations to build for i386 and amd64. In fact, you don't even need one installation of the blend you're building unless you're creating a new blend and need to figure out what goes where.
Not installed. I have libdvdnav and libdvdread, but I can't remember the last time I tried watching a dvd.
This might answer your questions about packaging for devuan:
https://git.devuan.org/dev1fanboy/Upgra … alkthrough
The package you're looking for appears to be in the backports repo.
Be careful with backports: https://dev1galaxy.org/viewtopic.php?id=32
$ aptitude show libdvdcss2
No current or candidate version found for libdvdcss2
Package: libdvdcss2
State: not a real package
Provided by: libdvd-pkg
$ apt-cache policy libdvd-pkg
libdvd-pkg:
Installed: (none)
Candidate: 1.4.0-1-1~bpo8+1
Version table:
1.4.0-1-2 0
90 http://us.mirror.devuan.org/merged/ ascii/contrib amd64 Packages
1.4.0-1-1~bpo8+1 0
100 http://packages.devuan.org/merged/ jessie-backports/contrib amd64 PackagesI'm pretty sure the git repo was moved because git.devuan.org has been so slow lately. I assume that it's a technical problem and that eventually, there will be a technical solution.
As for having to go to corporate websites, you only need to go there once. Clone the git repo, and you can build the iso yourself. It's all scripts.
Thank you for that gem! I've been missing apt-file for a long time.
Slight modification: I didn't copy the cache file. I copied the debian sources.list to my user's home and ran 'apt-file -s sources.list update' and it put an apt-file directory in ~/.cache.
I think you have to do it after the install. I was not able to do it during the install. See https://dev1galaxy.org/viewtopic.php?id=16
You should be able to install wpasupplicant and wireless tools with any of the package managers after the install with any of the isos. Only the DVD has wicd on it.
Other options include using the beta1 if you have a copy or waiting until rc1, in which this issue is fixed.
Installing AMD proprietary drivers on devuan should be the same as on debian. I know it is the same for nvidia drivers, but I have no experience with the amd. Please report back whether it works or not. I'm sure you're not the only one with this question.
Better to download from the devuan merged non-free repos so that updates (if any) will be picked up.
Got a link? I can't find any packages at packages.devuan.org, and I can't even get to us.mirror.devuan.org in a web browser.
Once the package is installed, updates will not be a problem - the package manager will know the package is there and the system will be able to connect to the internet because the package is installed. Please note that I am NOT saying to add debian to sources.list. I'm just saying to get the package from a place that's accessible with any web browser and any operating system.
It's a known problem - the beta2 installer doesn't find the wireless drivers. You might find them on the CD/DVD in /cdrom/firmware during installation, and you can probably find them if you pop the CD into a running system. Or you could download it. Either way, just install with dpkg as you suggested.
I'm pretty sure you need firmware-ralink which is in the non-free repo, and it's a package that devuan does not alter. That means you can get it from debian:
https://packages.debian.org/jessie/firmware-ralink
I was chrooting into an old wheezy installation to run apt-file until someone showed me these:
To find what package a file comes from:
dpkg -S <file>
To find what files come with a package:
dpkg -L <package>more...
https://lists.dyne.org/lurker/message/2 … 61.en.html
Author: Adam Borowski
Date: 2017-01-28 05:08 -500
To: dng
Subject: Re: [DNG] Backports priority(snip)...
Temporarily bump the priority of stable above 1000, it will downgrade
everything to that release.
I think I collected all of these from forums.debian.net (and I have not tested all of them.)
Edit: I'm adding code boxes to the ones I test. Note that some of these commands may give you strange results if you have multiple repos enabled, like jessie,ascii,ceres. Don't do that!
-fsr
------------------------
To find which installed packages are from debian-multimedia (works as user):
dpkg-query -W --showformat='${Package}\t${Maintainer}\n' |grep "Christian Marillat"To show packages from contrib and non-free, either one of the following. The second is more specific. (e.g. the first one gives a false positive on libclucene-contribs1 because "contrib" is in the package name.)
dpkg-query -W --showformat='${Package}\t${Section}\n' | egrep -e "non-free|contrib"
dpkg-query -W --showformat='${Package}\t${Section}\n' | awk '/non-free|contrib/ { print $0 }'Re: List installed software from non-free repo
bugsbunny » 2011-01-30 08:50
aptitude search ~i~s"non-free~|contrib"
or
aptitude search ~i~snon-free ~i~scontrib
If you want package names, section, and archive (testing, stable, unstable):
aptitude search ~i~snon-free ~i~scontrib -F"%p# %s# %t#"or maybe name, version, archive
aptitude search ~i -F"%p# %v# %t#"get package names and sizes, sorted by size:
dpkg-query -W --showformat='${Installed-Size}\t${Package}\n' > package_sizes
awk '{ printf "%.7d %s\n", $1, $2 "\n" }' package_sizes | sort
Show which repo (which release) packages came from:
aptitude search "?narrow(?installed,?archive(stable))"
aptitude search "?narrow(?installed,?archive(oldstable))"
Or did not come from:
aptitude search "?narrow(?installed,?not(?archive(stable)))"
To get a list of dependencies from a .deb file:
$ dpkg -e d4x_2.5.7.1-5_amd64.deb
$ su
Password:
# DEPS=$(grep ^Depends DEBIAN/control | sed 's/,/\n/g' | sed 's/(.*//;s/Depends: //;s/^ //')
# apt-get update
# apt-get install $DEPS ### Bad idea!!! This installs everything in the list. There may be redundancies.
# apt-get clean
# exit
This line works if there's a "|" in the output.
DEPS=$(grep ^Depends DEBIAN/control | sed 's/,/\n/g' | sed 's/(.*//;s/Depends: //;s/^ //;s/|.*$//')
Better way:
dpkg -i my-deb_5.0-6_i386.deb
apt-get -f install
Good stuff. I'm gonna play with that when I get a chance. I don't have the answer to your last question, but this might be helpful -
https://wiki.archlinux.org/index.php/Xresources
xinitrc
If you are using a copy of the default xinitrc as your .xinitrc it already merges ~/.Xresources.
If you are using a custom .xinitrc add the following line:
[[ -f ~/.Xresources ]] && xrdb -merge -I$HOME ~/.Xresources
Warning: Never background the xrdb command within ~/.xinitrc. Otherwise, programs launched after xrdb may look for resources before it has finished loading them.
Instead of editing grub.cfg, you should edit /etc/default/grub and change the first item:
GRUB_DEFAULT=6and then you must run update-grub to apply any changes you made. Then grub.cfg will be automatically edited the way you want.
BTW, entries 7 and 8 get you some geek points, and you get extra points if those things really boot. (Now I can't get that brick wall out of my head.)
You have to add code tags manually here.
I had a problem with refracta2usb in vdev. For some reason, it didn't recognize /dev/disk/by-id so I changed it to by-uuid. On the command line, it seems to work normally.
1 - 5 look right.
6. I never looked in that file before.
7. My guess is that gvfs needs some function in udev to tell it something. I run without gvfs here, so I wouldn't have noticed that.
Does your trash icon work?
8. You might need to alter some action files or a helper script. The most I've done with that was edit a pattern to find a device and change permissions.
Read Jude's documentation on the action files, (Appendix A)
https://git.devuan.org/unsystemd/vdev/b … to-test.md
https://github.com/jcnelson/vdev/blob/m … to-test.md
Look inside the helper scripts for clues. (in /lib/vdev)
Sorry I can't be more specific. It's a big black box. That I was able to do anything with the action files and permissions.sh was a surprise to me.
I can't get vbeinfo to work, but videoinfo shows me the three resolutions that work right plus 800x600.
I just tried it with a splash that's 640 x 480, 8-bit/color RGB, non-interlaced png, and 800x600 still does not work. (garbled boot text). That appears to be the same as the grub splash in the exegnu iso. (according to the file command). I think I need to do some more tests.
Edited to correct "works correctly" to "still does not work."
set gfxpayload=auto doesn't work, either. The only resolutions that work on this laptop are 640x480, 1024x768 and 1366x768. I tried it with the test snapshot and also with editing the grub entry at boot time. Same result. I'm guessing that there are netbooks that won't do 1024x768. Anybody know for sure?
Isoyhybrid uefi boot is fixed in exegnulinux_amd64_20161225.iso ![]()
BTW, 800x600 doesn't work right on my laptop. Boot messages are scrambled and take up the top third of the screen. I changed the mkefi function in snapshot to use 640x480 for that reason. I hope that works for everything.
Run 'fdisk -l' on the iso, and it should look something like these:
# fdisk -l devuan_jessie_1.0.0-beta2_amd64_DVD.iso
Disk devuan_jessie_1.0.0-beta2_amd64_DVD.iso: 4.4 GiB, 4668088320 bytes, 9117360 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x30c02860
Device Boot Start End Sectors Size Id Type
devuan_jessie_1.0.0-beta2_amd64_DVD.iso1 * 0 9117359 9117360 4.4G 0 Empty
devuan_jessie_1.0.0-beta2_amd64_DVD.iso2 9059432 9060263 832 416K ef EFI (FAT-12/16/32)
# fdisk -l refracta8_xfce_amd64-20161013_1314.iso
Disk refracta8_xfce_amd64-20161013_1314.iso: 648 MiB, 679477248 bytes, 1327104 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x25061aae
Device Boot Start End Sectors Size Id Type
refracta8_xfce_amd64-20161013_1314.iso1 * 64 1327103 1327040 648M 0 Empty
refracta8_xfce_amd64-20161013_1314.iso2 1314680 1317559 2880 1.4M ef EFI (FAT-12/16/32)Watch out for newer versions of refractasnapshot. I removed 'union=aufs' from live.cfg so it wouldn't conflict with overlay.
If you upload a rebuilt iso, I'll test it on uefi.
Further testing:
Iso boots uefi in qemu and virtualbox.
Re-imaged usb with isohybrid. Hardware boot fails (doesn't find a bootloader at all.)
So I tried booting from the hard drive - at grub menu I dropped to grub prompt:
set root=(hd0) #usb is first drive, tab-complete shows no partitions
chainloader +1gives error something like "Invalid EFI path..."
So then I tried
set root=(hd0)
linux /live/vmlinuz boot=live union=aufs nocomponents=xinit
initrd /live/initrd.img
bootand it boots normally.
(note: 'union=aufs' is also needed if you use encryption.)
I found the same as you with the grub-*-bin packages. In Refracta, I started with grub-efi then replaced it with grub-pc but didn't autoremove efibootmgr or (whatever else came with it). The grub-efi packages are included in the iso. There is a refractainstaller-uefi (yad) included in the iso. For a uefi install, when it gets to the grub install, it opens a terminal in a chroot in /target and allows you to install the grub-efi packages, which then install the bootloader to the efi partition. It works, but it needs some refinement.
There's a reason for installing both grub-efi packages instead of just grub-efi-amd64, even though the -bin package is already installed. But I don't recall exactly what that reason is. Maybe debconf runs? Maybe update-grub runs? Not sure, but it might be in my notes.
The new exegnulinux looks nice. I just installed it on uefi. Ran into a couple of minor problems, but it works.
First I dd'd the iso to usb, and it wouldn't boot on uefi. There's only one partition in the iso.
Then I used refracta2usb to make the usb, and it did boot on uefi. Chose uefi mode in the installer and let it install the bootloader. Installer told me that the grub install failed, but the log shows that grub claimed success. I rebooted. Exegnulinux is now the first entry in my boot menu, and I think it found all the other installations. (It's a long list.) It works.
BTW, now I understand why you add 'nocomponents=xinit' to the boot line. The desktop was psychedelic without that. Also required union=aufs which doesn't seem to be required on all jessie builds.
Quote from the author of figos:
you can always get the latest script (because fig os was originally meant to be something you put together yourself-- and customized if you wanted-- after all, its an automated process but you can tweak it if you like) at http://unofficialdistros.freeforums.org … tc-f4.html