[SOLVED] Best way to install .deb package in Slackware?
SlackwareThis Forum is for the discussion of Slackware Linux.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
I think the title is misleading, it should have been "install xyz.deb package in Slackware?".
As a general rule, one should not just install a package that was meant for another distribution if not in an emergency and if no other solutions exist. It's better to find the source and build a package with slackbuilds.
@Hitest: Thanks! I already had src2pkg installed but I didn't think to check if could do the job. I assumed it was just for source archives.
@ottavio: I know it's generally a poor way to install software, but I was trying to install a closed source Linux game which was only distributed as a .deb package.
BTW, you can manually make a Slack package out of most .deb files and it is not really complicated. .debs have one particular file you should be interested in: data.tar.gz. They keep their doinst.sh in another file called control.tar.gz which you should inspect and, if needed, incorporate into a post-install script.
In the case of SpaceChem, you can do the following:
Code:
mkdir -p work/pkg
cd work
ar -x /path/to/SpaceChem-i386.deb
cd pkg
tar xvf ../data.tar.gz
Then, as root, you run makepkg in the work/pkg directory, like
makepkg -l y -c n /tmp/SpaceChem-i386.txz
I've used gnashley's src2pkg utility to create slackware packages from .deb source files. I highly recommend src2pkg.
Following the advice in this thread, I've installed src2pkg, but I can't seem to find any examples to convert a .deb to a Slackware package. It is as simple as `src2pkg xyz.deb`? I hesitate to experiment w/o some guidance.
bonixavier solution looks simple enough, but now that I've gone through the effort to install src2pkg I'd like to try it.
mfoley, I have little experience with src2pkg, but there is a simple utility out there called deb2tgz that will do what it says, convert a .deb package to a Slackware tgz package (they also have deb2txz if you'd rather have the increased compression).
OK, I'll try deb2tgz. But, sorry to be a complete idiot, the link I found to download this is https://sourceforge.net/projects/deb2tgz/. However, I cannot find a link or button anywhere on that page to dowwnload it. Can you straighten me out?
Later ... never mind this post. After more searching I found it at SlackBuilds. Unfortunately, it doesn't work on this particular .deb file
As long as the deb package is using same system libs & toolchain as your running Slackware : the best way to create a perfect Slackware package from a deb package : is using Zenwalk's "SlackBuild" tool.
All the best
Code:
bash-5.2# SlackBuild jellyfin-server-10.8.7.deb
Extracting source jellyfin-server-10.8.7.deb
./
./etc/
./etc/default/
./etc/default/jellyfin
./etc/init/
./etc/init/jellyfin.conf
./etc/init.d/
./etc/init.d/jellyfin
./etc/jellyfin/
./etc/jellyfin/logging.json
./etc/sudoers.d/
./etc/sudoers.d/jellyfin-sudoers
./etc/systemd/
./etc/systemd/system/
./etc/systemd/system/jellyfin.service.d/
./etc/systemd/system/jellyfin.service.d/jellyfin.service.conf
./lib/
./lib/systemd/
./lib/systemd/system/
./lib/systemd/system/jellyfin.service
./usr/
./usr/lib/
./usr/lib/jellyfin/
./usr/lib/jellyfin/bin/
./usr/lib/jellyfin/bin/BDInfo.dll
./usr/lib/jellyfin/bin/BlurHashSharp.SkiaSharp.dll
./usr/lib/jellyfin/bin/BlurHashSharp.dll
./usr/lib/jellyfin/bin/CommandLine.dll
./usr/lib/jellyfin/bin/DiscUtils.Core.dll
./usr/lib/jellyfin/bin/DiscUtils.Iso9660.dll
./usr/lib/jellyfin/bin/DiscUtils.Streams.dll
./usr/lib/jellyfin/bin/DiscUtils.Udf.dll
./usr/lib/jellyfin/bin/DotNet.Glob.dll
./usr/lib/jellyfin/bin/DvdLib.dll
./usr/lib/jellyfin/bin/DvdLib.xml
(...)
./usr/lib/jellyfin/bin/wwwroot/api-docs/
./usr/lib/jellyfin/bin/wwwroot/api-docs/banner-dark.svg
./usr/lib/jellyfin/bin/wwwroot/api-docs/redoc/
./usr/lib/jellyfin/bin/wwwroot/api-docs/redoc/custom.css
./usr/lib/jellyfin/bin/wwwroot/api-docs/swagger/
./usr/lib/jellyfin/bin/wwwroot/api-docs/swagger/custom.css
./usr/lib/jellyfin/bin/zlib.net.dll
./usr/lib/jellyfin/restart.sh
./usr/share/
./usr/share/doc/
./usr/share/doc/jellyfin-server/
./usr/share/doc/jellyfin-server/changelog.Debian.gz
./usr/share/doc/jellyfin-server/copyright
ls: cannot access '/zen/sources/jellyfin/tmp/*/': No such file or directory
Aplying patches
ls: cannot access '/zen/sources/jellyfin/jellyfin-server-*.patch': No such file or directory
About to build jellyfin-server
Using source jellyfin-server-10.8.7.deb
output package will be /tmp/jellyfin-server-10.8.7-x86_64-221106.txz
Executing build.sh
Installing docs in /tmp/jellyfin-server-10.8.7-x86_64-221106/usr/doc/jellyfin-server-10.8.7
Executing postbuild script
useradd: user 'jellyfin' already exists
looking up for existing slack-desc on Internet.....
Installing post-install script doinst.sh
Creating package...
chown: warning: '.' should be ':': ‘root.root’
Slackware package maker, version 3.14159265.
Searching for symbolic links:
No symbolic links were found, so we won't make an installation script.
You can make your own later in ./install/doinst.sh and rebuild the
package if you like.
This next step is optional - you can set the directories in your package
to some sane permissions. If any of the directories in your package have
special permissions, then DO NOT reset them here!
Would you like to reset all directory permissions to 755 (drwxr-xr-x) and
directory ownerships to root.root ([y]es, [n]o)? n
Creating Slackware package: /tmp/jellyfin-server-10.8.7-x86_64-221106.txz
./
etc/
etc/jellyfin/
etc/jellyfin/logging.json.new
etc/rc.d/
etc/rc.d/rc.jellyfin.new
install/
install/doinst.sh
install/slack-desc
usr/
usr/bin/
usr/bin/jellyfin
usr/doc/
usr/doc/jellyfin-server-10.8.7/
usr/doc/jellyfin-server-10.8.7/build.sh
usr/doc/jellyfin-server-10.8.7/copyright
usr/doc/jellyfin-server-10.8.7/jellyfin-server-postbuild.sh
usr/doc/jellyfin-server-10.8.7/jellyfin-server.SlackBuild
usr/lib64/
usr/lib64/jellyfin/
usr/lib64/jellyfin/bin/
usr/lib64/jellyfin/bin/BDInfo.dll
usr/lib64/jellyfin/bin/BlurHashSharp.SkiaSharp.dll
usr/lib64/jellyfin/bin/BlurHashSharp.dll
usr/lib64/jellyfin/bin/CommandLine.dll
usr/lib64/jellyfin/bin/DiscUtils.Core.dll
usr/lib64/jellyfin/bin/DiscUtils.Iso9660.dll
usr/lib64/jellyfin/bin/DiscUtils.Streams.dll
usr/lib64/jellyfin/bin/DiscUtils.Udf.dll
usr/lib64/jellyfin/bin/DotNet.Glob.dll
usr/lib64/jellyfin/bin/DvdLib.dll
usr/lib64/jellyfin/bin/DvdLib.xml
usr/lib64/jellyfin/bin/Emby.Dlna.dll
usr/lib64/jellyfin/bin/Emby.Dlna.xml
usr/lib64/jellyfin/bin/Emby.Drawing.dll
usr/lib64/jellyfin/bin/Emby.Drawing.xml
usr/lib64/jellyfin/bin/Emby.Naming.dll
usr/lib64/jellyfin/bin/Emby.Naming.xml
(...)
usr/lib64/jellyfin/bin/System.Text.Json.dll
usr/lib64/jellyfin/bin/System.Text.RegularExpressions.dll
usr/lib64/jellyfin/bin/System.Threading.Channels.dll
usr/lib64/jellyfin/bin/System.Threading.Overlapped.dll
usr/lib64/jellyfin/bin/System.Threading.Tasks.Dataflow.dll
usr/lib64/jellyfin/bin/System.Threading.Tasks.Extensions.dll
usr/lib64/jellyfin/bin/System.Threading.Tasks.Parallel.dll
usr/lib64/jellyfin/bin/System.Threading.Tasks.dll
usr/lib64/jellyfin/bin/System.Threading.Thread.dll
usr/lib64/jellyfin/bin/System.Threading.ThreadPool.dll
usr/lib64/jellyfin/bin/System.Threading.Timer.dll
usr/lib64/jellyfin/bin/System.Threading.dll
usr/lib64/jellyfin/bin/System.Transactions.Local.dll
usr/lib64/jellyfin/bin/System.Transactions.dll
usr/lib64/jellyfin/bin/System.ValueTuple.dll
usr/lib64/jellyfin/bin/System.Web.HttpUtility.dll
usr/lib64/jellyfin/bin/System.Web.dll
usr/lib64/jellyfin/bin/System.Windows.dll
usr/lib64/jellyfin/bin/System.Xml.Linq.dll
usr/lib64/jellyfin/bin/System.Xml.ReaderWriter.dll
usr/lib64/jellyfin/bin/System.Xml.Serialization.dll
usr/lib64/jellyfin/bin/System.Xml.XDocument.dll
usr/lib64/jellyfin/bin/System.Xml.XPath.XDocument.dll
usr/lib64/jellyfin/bin/System.Xml.XPath.dll
usr/lib64/jellyfin/bin/System.Xml.XmlDocument.dll
usr/lib64/jellyfin/bin/System.Xml.XmlSerializer.dll
usr/lib64/jellyfin/bin/System.Xml.dll
usr/lib64/jellyfin/bin/System.dll
usr/lib64/jellyfin/bin/TMDbLib.dll
usr/lib64/jellyfin/bin/TagLibSharp.dll
usr/lib64/jellyfin/bin/UtfUnknown.dll
usr/lib64/jellyfin/bin/WindowsBase.dll
usr/lib64/jellyfin/bin/createdump
usr/lib64/jellyfin/bin/jellyfin
usr/lib64/jellyfin/bin/jellyfin.deps.json
usr/lib64/jellyfin/bin/jellyfin.dll
usr/lib64/jellyfin/bin/jellyfin.runtimeconfig.json
usr/lib64/jellyfin/bin/jellyfin.xml
usr/lib64/jellyfin/bin/libSkiaSharp.so
usr/lib64/jellyfin/bin/libSystem.Globalization.Native.so
usr/lib64/jellyfin/bin/libSystem.IO.Compression.Native.so
usr/lib64/jellyfin/bin/libSystem.Native.so
usr/lib64/jellyfin/bin/libSystem.Net.Security.Native.so
usr/lib64/jellyfin/bin/libSystem.Security.Cryptography.Native.OpenSsl.so
usr/lib64/jellyfin/bin/libclrjit.so
usr/lib64/jellyfin/bin/libcoreclr.so
usr/lib64/jellyfin/bin/libcoreclrtraceptprovider.so
usr/lib64/jellyfin/bin/libdbgshim.so
usr/lib64/jellyfin/bin/libe_sqlite3.so
usr/lib64/jellyfin/bin/libhostfxr.so
usr/lib64/jellyfin/bin/libhostpolicy.so
usr/lib64/jellyfin/bin/libmscordaccore.so
usr/lib64/jellyfin/bin/libmscordbi.so
usr/lib64/jellyfin/bin/libse.dll
usr/lib64/jellyfin/bin/mscorlib.dll
usr/lib64/jellyfin/bin/netstandard.dll
usr/lib64/jellyfin/bin/prometheus-net.DotNetRuntime.dll
usr/lib64/jellyfin/bin/wwwroot/
usr/lib64/jellyfin/bin/wwwroot/api-docs/
usr/lib64/jellyfin/bin/wwwroot/api-docs/banner-dark.svg
usr/lib64/jellyfin/bin/wwwroot/api-docs/redoc/
usr/lib64/jellyfin/bin/wwwroot/api-docs/redoc/custom.css
usr/lib64/jellyfin/bin/wwwroot/api-docs/swagger/
usr/lib64/jellyfin/bin/wwwroot/api-docs/swagger/custom.css
usr/lib64/jellyfin/bin/zlib.net.dll
usr/lib64/jellyfin/restart.sh
var/
var/cache/
var/cache/jellyfin/
var/lib/
var/lib/jellyfin/
var/log/
var/log/jellyfin/
WARNING: zero length file usr/lib64/jellyfin/bin/wwwroot/api-docs/redoc/custom.css
Slackware package /tmp/jellyfin-server-10.8.7-x86_64-221106.txz created.
jellyfin-server: Zenwalk package for jellyfin-server
jellyfin-server:
jellyfin-server: This jellyfin-server package was created for Zenwalk GNU Linux.
jellyfin-server: It can be installed on any Slackware Linux system.
jellyfin-server:
jellyfin-server: For more information, see: http://www.zenwalk.org
jellyfin-server:
jellyfin-server:
jellyfin-server:
jellyfin-server:
jellyfin-server:
As long as the deb package is using same system libs & toolchain as your running Slackware : the best way to create a perfect Slackware package from a deb package : is using Zenwalk's "SlackBuild" tool.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.