LinuxQuestions.org
Help answer threads with 0 replies.
Home Forums Tutorials Articles Register
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - Distributions > Slackware
User Name
Password
Slackware This Forum is for the discussion of Slackware Linux.

Notices


Reply
  Search this Thread
Old 12-12-2018, 12:56 AM   #61
solarfields
Senior Member
 
Registered: Feb 2006
Location: slackalaxy.com
Distribution: Slackware, CRUX
Posts: 1,456

Rep: Reputation: 1004Reputation: 1004Reputation: 1004Reputation: 1004Reputation: 1004Reputation: 1004Reputation: 1004Reputation: 1004

Quote:
Originally Posted by montagdude View Post
I just typed "sudo /usr/sbin/slackpkg update" just for the sake of whomever that may annoy. I didn't even use -i.
you monster
 
4 members found this post helpful.
Old 12-12-2018, 03:22 AM   #62
zeebra
Senior Member
 
Registered: Dec 2011
Distribution: Slackware
Posts: 1,834
Blog Entries: 17

Rep: Reputation: 643Reputation: 643Reputation: 643Reputation: 643Reputation: 643Reputation: 643
Quote:
Originally Posted by ruario View Post
Search common directories (that `make install` is likely to have placed files into) for all file types except directories, that were created (modified or changed) within the last 5 minutes and print them into a log file.

You can alter the directories as you see fit but don't just use / because then you will find stuff in a bunch of other subdirectories that might have been written to within that time frame (e.g. /home, /tmp, etc.). Sticking to common install directories will lessen the chance of false positives.

You could also alter the time but so long as you issue this immediately after `make install`, 5 minutes (or less) should be fine, given that I have never seen a `make install` command take that long.
Ok, well, that will work under many circumstances, but not if you build two things in a short span of time, let's say a dependency. And is it really a safe way to do things? I mean, to me it seems that things could go wrong by using this method.

With configure, make, make install logs you will have a very precise overview. Sure, it will contain alot of garble as well, and it will be a very manual process to deal with it IF you need to say remove everything in there. But with grep and other tools you can modify those logs easily and also find more exact things you are looking for, if there is perhaps 1 file or parts of that program that you need to know more details about.

Anyways, I'm back to Slackware after years of using other distroes with pretty much build --automation --tools. While this is good for everyday use and "just works", it really slows down the learning process. Which is probably the reason I did not understand your bash command in the first place. I need to get into the nitty gritty, and I think manual labour is the way to go for that. While that might be personal to me, I hardly think saving logfiles when doing configure, make && make install is something that should be advised against. For me it seems like a good idea, something I want to work into my routine when compiling and building from source.

I guess mentioning /opt was pretty stupid and unecessary, but I do want to start using /opt correctly even though it might seem somewhat of an obscure concept and generally not used at all. I just thought it was worth mentioning. I'm also trying to figure out a bit about how to build a virtual environment and jail and such things, and I think a thought I had was to build one in /opt and integrate some non "standalone" software into this kind of environment. System integration as you mentioned is the point exactly, to avoid system integration.

One good example could be Firefox.

Anyways, I'm here to learn, but I'm not a newbie. But I think the last version of Slackware that I used before my current 14.2 version was probably 11.1. And my first ever distro was Slackware, somewhere around 8.0 or 8.1.


Quote:
Originally Posted by ruario View Post
Separate the log contents by new lines and pass these as arguments to the remove command verbosely.
Gimme -vv!
 
Old 12-12-2018, 03:59 AM   #63
solarfields
Senior Member
 
Registered: Feb 2006
Location: slackalaxy.com
Distribution: Slackware, CRUX
Posts: 1,456

Rep: Reputation: 1004Reputation: 1004Reputation: 1004Reputation: 1004Reputation: 1004Reputation: 1004Reputation: 1004Reputation: 1004
IMHO, the best way is to create a SlackBuild and share it with the community, by submitting it to SBo. In this way, it will pass a certain quality check and other users will benefit.

PS: zeebra, how much of additional software do you install?
 
Old 12-12-2018, 04:02 AM   #64
ruario
Senior Member
 
Registered: Jan 2011
Location: Oslo, Norway
Distribution: Slackware
Posts: 2,557

Rep: Reputation: 1762Reputation: 1762Reputation: 1762Reputation: 1762Reputation: 1762Reputation: 1762Reputation: 1762Reputation: 1762Reputation: 1762Reputation: 1762Reputation: 1762
Quote:
Originally Posted by zeebra View Post
Ok, well, that will work under many circumstances, but not if you build two things in a short span of time, let's say a dependency. And is it really a safe way to do things? I mean, to me it seems that things could go wrong by using this method.
5 mins is an example. As I already explained, you can knock it down further if you compile quickly several packages. It is no big deal, not least because I also specifically said that you should review the log and I think that doing so would make it fairly obvious what happened if you had the timing off, at which point you would adjust it and make a new log. This is still a hell of a lot easier than manually going through the type of log you suggested.

Also, this is just one example. If you want another way off the top of my head, here you go. Do a find with no `-cmin x` (and thus listing all files) just before the `make install` (and save that to a file), then again just afterwards (and save to file). Then diff these two and you have a listing of all installed files, e.g.

Code:
find /etc /usr /opt ! -type d > before
make install
find /etc /usr /opt ! -type d > after
diff --normal before after | sed -n 's/^> //p' > program-name_files.log
P.S. I also already gave you another even better example using a staging directory, which is what I actually do (when not making a Slackware package).
 
Old 12-12-2018, 04:26 AM   #65
ruario
Senior Member
 
Registered: Jan 2011
Location: Oslo, Norway
Distribution: Slackware
Posts: 2,557

Rep: Reputation: 1762Reputation: 1762Reputation: 1762Reputation: 1762Reputation: 1762Reputation: 1762Reputation: 1762Reputation: 1762Reputation: 1762Reputation: 1762Reputation: 1762
Quote:
Originally Posted by solarfields View Post
PS: zeebra, how much of additional software do you install?
You didn't ask me but I will give you my answer. On the machine I am using now, I currently have 32 packages installed via the type of logging tricks I have mentioned in this thread, consisting of 2696 files. I can tell you this easily because of the types of logs I create. I can also selectively uninstall any one of them with a single command.

[EDIT 1]: I do this because it gives me some of the advantages of a making a native package, using a distro agnostic method. That is something that is useful to me, though I appreciate that it probably does not matter to most people. If you are a pure Slackware user, SlackBuilds are clearly the way to go.

[EDIT 2]: In fact I could take that further and say that learning how to make packages in whatever your distro of choice is, is always a highly valuable skill. Native packages will always have a number of advantages.

Last edited by ruario; 12-12-2018 at 04:54 AM.
 
1 members found this post helpful.
Old 12-12-2018, 04:37 AM   #66
Lysander666
Senior Member
 
Registered: Apr 2017
Location: The Underearth
Distribution: Ubuntu, Debian, Slackware
Posts: 2,178

Original Poster
Blog Entries: 6

Rep: Reputation: 2470Reputation: 2470Reputation: 2470Reputation: 2470Reputation: 2470Reputation: 2470Reputation: 2470Reputation: 2470Reputation: 2470Reputation: 2470Reputation: 2470
Quote:
Originally Posted by ruario View Post
I gave up watching it after the second obvious spelling mistake. I think they could have prepared better and done some editing. It was painful to watch/listen to and I couldn't see that I would learn anything from it personally.

Still… on the plus side I do appreciate that they used Slackware. Keeps the name out there.
I noticed straight away that 'sysconfigdir' was mispelled 'syconfigdir' and it was painful waiting for him to correct it. However, they did say at the end of the video that they intentionally kept those parts in there to show what a difference a typo can make.... just as zeebra says:

Quote:
Originally Posted by zeebra View Post
That's how far a typo can go ofcourse..
Quote:
Originally Posted by chrisretusn View Post
I watched this almost all the way through. I was interested in sbopkg and sbotools, I've never used them before. Made it as far as the beginning part of sbotools, just couldn't take it anymore. I thought the video would be more of a turn off for someone thinking of using Slackware. Well that's my two cents. I don't think I'll switching to sbopkg or spobtools either.
I was wondering that too. I think if I was trying to get into Slackware and I watched the video I would find it very dry and it would possibly even put me off. The main issue is that Serge [I also don't know who he is] doesn't explain each command as he's giving it, it's just parrot fashion - this command, then that, then that.

I think the video would best suit someone who has started using Slackware - they've installed it, they've already installed and used a few third-party packages and they want to get up to cruising altitude.

They said they might do a part 3. It may be in the interests of the video-makers for them to take a look at this thread before they do so, there's some great advice in here.

Last edited by Lysander666; 12-12-2018 at 04:38 AM.
 
Old 12-12-2018, 06:01 AM   #67
ruario
Senior Member
 
Registered: Jan 2011
Location: Oslo, Norway
Distribution: Slackware
Posts: 2,557

Rep: Reputation: 1762Reputation: 1762Reputation: 1762Reputation: 1762Reputation: 1762Reputation: 1762Reputation: 1762Reputation: 1762Reputation: 1762Reputation: 1762Reputation: 1762
While we are here and for future reference for anyone stumbling across this thread after doing a `make install` (with no logging) and wondering how to clean up, here is another neat `find` trick.

You can use `find` to locate files associated with a package, if you know just one of the files within the package. For example, say I have zstd installed and I want to remove it and all of its associated files. First I note the timestamp for ‘Change’ (inode data modification) on the main executable.

Code:
$ stat -c%z /usr/local/bin/zstd
2018-12-13 10:43:03.988476291 +0100
Note: Change in this case includes any of the following system calls: chmod, chown, link, mknod, rename, unlink, utimes or write. So unless you have done any of these on the files again after install, it will effectively be the installation time. Furthermore ‘Change’ (in this instance) is a better timestamp than ‘Modify’ because when files are copied into place, their modification timestamp is sometimes reset to that of when the file was last edited by the package maintainer and this could be long in the past (this is particularly true of doc files).

Ok, this file had a Change timestamp of (roughly) ‘2018-12-13 10:43:04 +0100’. If I take 3 minutes before this time (2018-12-13 10:40:04 +0100) and 3 minutes after (2018-12-13 10:46:04 +0100), I now have a nice range when the rest of the files are likely to have been installed.

I can then construct a find command based on this information to find files (excluding directories for the reasons I mentioned previously) from the same time period, e.g.

Code:
find /etc /opt /usr -newerct '2018-12-13 10:40:04 +0100' ! -newerct '2018-12-13 10:46:04 +0100' ! -type d
Which on my system gives me:

Code:
/usr/local/man/man1/zstdcat.1
/usr/local/man/man1/zstd.1
/usr/local/man/man1/unzstd.1
/usr/local/man/man1/zstdgrep.1
/usr/local/man/man1/zstdless.1
/usr/local/include/zbuff.h
/usr/local/include/zstd_errors.h
/usr/local/include/zstd.h
/usr/local/include/zdict.h
/usr/local/lib/libzstd.a
/usr/local/lib/libzstd.so.1
/usr/local/lib/libzstd.so
/usr/local/lib/pkgconfig/libzstd.pc
/usr/local/lib/libzstd.so.1.3.7
/usr/local/bin/zstdless
/usr/local/bin/unzstd
/usr/local/bin/zstdgrep
/usr/local/bin/zstdmt
/usr/local/bin/zstdcat
/usr/local/bin/zstd
If I am happy with the result, I can then modify the above command to remove these, like so:

Code:
find /etc /opt /usr -newerct '2018-12-13 10:40:04 +0100' ! -newerct '2018-12-13 10:46:04 +0100' ! -type d -delete
Oh and you will want to run those commands as root (or prefaced with `sudo`). Sorry… couldn't resist!

P.S. All my notes about tracking files associated with manual source installs are now collated in this ‘gist’ on Github

Last edited by ruario; 12-13-2018 at 07:28 AM. Reason: Provided better examples; clarified why Change is used rather than Modify; updated example again; added P.S.
 
2 members found this post helpful.
Old 12-12-2018, 06:07 AM   #68
zeebra
Senior Member
 
Registered: Dec 2011
Distribution: Slackware
Posts: 1,834
Blog Entries: 17

Rep: Reputation: 643Reputation: 643Reputation: 643Reputation: 643Reputation: 643Reputation: 643
Quote:
Originally Posted by solarfields View Post
IMHO, the best way is to create a SlackBuild and share it with the community, by submitting it to SBo. In this way, it will pass a certain quality check and other users will benefit.

PS: zeebra, how much of additional software do you install?
This is ofcourse a good point. Adding to and doing things in a community is ofcourse a very integral part of the whole experience.

Well, as I said, I just got back to Slackware, so I have not really installed much software at all. But, what I am trying to do is to do everything from the lowest point up, I'm not making any shortcuts etc.. So, sure, my way might be different, but I am sure many hardcore Slackers also follow this kind of path. So, the first thing I found out when getting back, after learning a few things and configuring and fixing some other things; when I finally started installing some software, I realised I need to keep track of what I am doing, thus the whole log thing was something that I added and worked into my routines.

I installed Slackware on a new laptop, and this is basically a trial run, and thus far I have run it with ifconfig all down. So I am literally doing everything manually, including fetching packages via a USB.

I am trying to learn certain things in an orderly fashion, to upgrade my knowledge and learn new things. I am using this laptop and my current Slackware for that purpose. I am trying to build a set of best practices that I can implement when I finally build my productive system.

How much software I will need on that productive system is quite unclear, but what I imagine doing is building a seperate tree for all these things and run them in various jails under some kind of environment other than my main system. At least this is what I am trying to figure out, and no, I am not going to take the easy route there either. Currently I am working on a way to adapt and integrate SeLinux into my current Slackware version, so you can possibly understand what a stupidly complicated route I am taking. All in good fun and spirit though.

But anyways, I am writing this from another productive system, so no need to worry. I just want to make things perfect for the next step of my GNU/Linux experience, and part of that is to learn much more indepth a list of things I have scribbled down, to reach a level where I can manipulate the whole system, do everything manually but efficient and adapt it to my hearts desires.

Ps. I can imagine Enlightenment is something that I will want to install on my future productive system (manually ofcourse). Additionally I can imagine I will be experimenting with Wayland in some kind of virtual environment too. So, yes, some amount of software just from those 2.

Last edited by zeebra; 12-12-2018 at 06:12 AM.
 
Old 12-12-2018, 06:19 AM   #69
zeebra
Senior Member
 
Registered: Dec 2011
Distribution: Slackware
Posts: 1,834
Blog Entries: 17

Rep: Reputation: 643Reputation: 643Reputation: 643Reputation: 643Reputation: 643Reputation: 643
Quote:
Originally Posted by bassmadrigal View Post
I think most use cases can be summed up with:
  • Manual - ./configure, make, make install
  • Creating your own scripts to automate building
  • Using other's scripts (like from SlackBuilds.org)
  • Using tools to handle scripts and/or dependencies automatically (sbopkg, sboui, sbotools, slackrepo, etc)
  • Manually using 3rd-party pre-compiled repos (Alien Bob, SlackOnly, etc)
  • Using automated tools to work with 3rd-party pre-compiled repos (slackpkg+, slapt-get, etc)
Great list, thanks. So, from just a few months of rejoining Slackware, my impression is that the "big" one is Slackbuilds. This is the big new thing that I have missed and the route that many seem to take. This is a common topic on Slackware threads and information pages etc. It's pretty clear what it is..

But, I want to ask you (or someone else) another favour if you'd please break down those other tools in bold. Various of those tools have been mentioned in this thread, and I think I've seen them around elsewhere to. So, what is the difference between those? And where do we find them? Just very briefly in a similar list if you would kindly please.

Thanks.
 
Old 12-12-2018, 09:36 AM   #70
solarfields
Senior Member
 
Registered: Feb 2006
Location: slackalaxy.com
Distribution: Slackware, CRUX
Posts: 1,456

Rep: Reputation: 1004Reputation: 1004Reputation: 1004Reputation: 1004Reputation: 1004Reputation: 1004Reputation: 1004Reputation: 1004
sbopkg is an interface to SBo. It has a very similar look and feel to pkgtool. It does not resolve dependency directly, rather you can generated the so called build queues, by a script called sqg, which is included. If you want to generate queues for everything at SBO, you run sqg -a. Be patient.

sboui is a tool with a look and feel similar to midnight commander. It has its own capability to manage stuff from SBo, and in addition it can 'drive' other tools such as sbopkg and sbotools.

sbotools is a suite of commands that have a ports-like feel. They directly resolve dependencies.

slackrepo is different. It is a program very useful to create your own repository of precompiled packages, for example from SBo. I use this, as I have explained in my first post in this thread. slackrepo is meant to be used in a clean environment. This means, you should dedicate a virtual machine only to building packages. When you create a package, slackrepo will build its dependencies and then, when everything is completed and packages are ready, slackrepo will uninstall them, to keep your system clean. So when you build something else, only its own, required dependencies will be present at build time.

Last edited by solarfields; 12-12-2018 at 09:37 AM.
 
5 members found this post helpful.
Old 12-12-2018, 10:17 AM   #71
hitest
Guru
 
Registered: Mar 2004
Location: Canada
Distribution: Void, Slackware, Debian, OpenBSD
Posts: 7,350

Rep: Reputation: 3748Reputation: 3748Reputation: 3748Reputation: 3748Reputation: 3748Reputation: 3748Reputation: 3748Reputation: 3748Reputation: 3748Reputation: 3748Reputation: 3748
I will install pre-built third party packages from trusted sources like Eric and Robby. I'll also use build scripts from the good people at SBo.
 
1 members found this post helpful.
Old 12-12-2018, 04:50 PM   #72
bassmadrigal
LQ Guru
 
Registered: Nov 2003
Location: West Jordan, UT, USA
Distribution: Slackware
Posts: 8,792

Rep: Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656
Quote:
Originally Posted by zeebra View Post
With configure, make, make install logs you will have a very precise overview. Sure, it will contain alot of garble as well, and it will be a very manual process to deal with it IF you need to say remove everything in there. But with grep and other tools you can modify those logs easily and also find more exact things you are looking for, if there is perhaps 1 file or parts of that program that you need to know more details about.
This is part of the beauty of using the package tools within Slackware. When you use make install using the DESTDIR option, it will run an "install", but place all files in the folder you specify for DESTDIR. This is the exact folder/file structure that would've been placed in your normal filesystem. When you run makepkg, it basically tars up all the files and compresses them using whatever file extension you specify (the two most common, tgz and txz provide gzipped packages and xz zipped packages respectively). When you using installpkg/upgradepkg, it will basically unzip those files in the root of the filesystem and make a log stored in /var/log/package/ under the file name of the package (note, the location has been changed in -current to /var/lib/pkgtools/packages/). This allows removepkg to verify whether those files exist in any other programs to ensure you aren't removing a file a program depends on.

pkgtools basically implemented your logs for the installing aspect and ties it in with all packages on the system.

Quote:
Originally Posted by zeebra View Post
Anyways, I'm back to Slackware after years of using other distroes with pretty much build --automation --tools. While this is good for everyday use and "just works", it really slows down the learning process. Which is probably the reason I did not understand your bash command in the first place. I need to get into the nitty gritty, and I think manual labour is the way to go for that. While that might be personal to me, I hardly think saving logfiles when doing configure, make && make install is something that should be advised against. For me it seems like a good idea, something I want to work into my routine when compiling and building from source.
Using more automated processes definitely does slow down the learning process. I understand so much of the packaging system because I did it the old way for so long (which caused me to break my system multiple times). I don't blame you at all for wanting to stay away from the automated aspects so you can learn things better. I will say I doubt you'll have much of a need of ./configure and make logs, but the make install could be helpful. But if you already know the basics of compiling, you can then make your own basic SlackBuilds, and you can tweak and change things as needed. I provided this basic SlackBuild in another thread, and just for kicks, I added logging for the ./configure, make, and make installs and stored them in a doc directory for that program.

Code:
PRGNAM=appname
VERSION=${VERSION:-1.4.1}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}

CWD=$(pwd)
TMP=${TMP:-/tmp/SBo}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}

rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
rm -rf $PRGNAM-$VERSION
tar xvf $CWD/$PRGNAM-$VERSION.tar.gz
cd $PRGNAM-$VERSION

DOCDIR=$PKG/usr/doc/$PRGNAM-$VERSION
mkdir -p $DOCDIR

./configure 2>&1 | tee $DOCDIR/configure.log
make 2>&1 | tee $DOCDIR/make.log
make install DESTDIR=$PKG 2>&1 | tee $DOCDIR/make_install.log

cd $PKG
/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}
Quote:
Originally Posted by zeebra View Post
I guess mentioning /opt was pretty stupid and unecessary, but I do want to start using /opt correctly even though it might seem somewhat of an obscure concept and generally not used at all. I just thought it was worth mentioning. I'm also trying to figure out a bit about how to build a virtual environment and jail and such things, and I think a thought I had was to build one in /opt and integrate some non "standalone" software into this kind of environment. System integration as you mentioned is the point exactly, to avoid system integration.

One good example could be Firefox.
So, /opt/ is kinda an interesting directory. If you are to build Firefox from scratch, /usr/ or /usr/local/ would be a better place for it since it integrates cleanly into the filesystem standards, but if you were to download a prebuilt binary, /opt/ would be a much better place for that. If you want to learn more about how the directories should be used, have a look at the Filesystem Hierarchy Standards (FHS). /usr/ is for packages that use the defined folders like /usr/lib/, /usr/share/, /usr/bin/, etc. For the packages that don't or are pretty much self-contained, /opt/ is a much better place. You'll see this location used with many pre-compiled binaries on SlackBuilds.org (commonly called SBo).

Quote:
Originally Posted by zeebra View Post
Anyways, I'm here to learn, but I'm not a newbie. But I think the last version of Slackware that I used before my current 14.2 version was probably 11.1. And my first ever distro was Slackware, somewhere around 8.0 or 8.1.
Learning is great! Don't let the suggestions here tell you otherwise. When you have a better understanding of how things work, you have a better understanding of how to fix things when they ultimately go wrong. And sometimes fixing things (without reinstalling) will teach you more than you would've had you not broken it. I am really grateful for all the time I spent learning the ins and outs of compiling, dependencies, packaging, and SlackBuilds. But now that I have that knowledge, I've found it is not worth my time to do things manually.

I love SBo and what it has provided to Slackware users. We get a consistently great repo of scripts that can be used to build software, but also gives us the flexibility that Slackware is known for. The SlackBuilds tend to have sane defaults, like Slackware, but we can choose our own dependencies (either removing "required" ones the maintainer specified or adding our own optional dependencies), add our own options, and you could even tweak the scripts to add extra logging. While SBo has a decent number of packages available, I have found at times that something I'm interested in isn't available. When this happens, I will generate a SlackBuild myself and then submit it so others can benefit. This minimizes duplicated effort.

Quote:
Originally Posted by zeebra View Post
Great list, thanks. So, from just a few months of rejoining Slackware, my impression is that the "big" one is Slackbuilds. This is the big new thing that I have missed and the route that many seem to take. This is a common topic on Slackware threads and information pages etc. It's pretty clear what it is..
I love SlackBuilds. They really are a great way to build software. SlackBuilds.org (SBo) modeled their templates directly from the SlackBuilds that Pat uses to build Slackware (you can find those in the source/ folder of your favorite mirror). I love SBo and what it has provided to Slackware users. We get a consistently great repo of scripts that can be used to build software, but also gives us the flexibility that Slackware is known for. The SlackBuilds tend to have sane defaults, like Slackware, but we can choose our own dependencies (either removing "required" ones the maintainer specified or adding our own optional dependencies), add our own options, and you could even tweak the scripts to add extra logging. While SBo has a decent number of packages available, I have found at times that something I'm interested in isn't available. When this happens, I will generate a SlackBuild myself and then submit it so others can benefit. This minimizes duplicated effort.

Quote:
Originally Posted by zeebra View Post
But, I want to ask you (or someone else) another favour if you'd please break down those other tools in bold. Various of those tools have been mentioned in this thread, and I think I've seen them around elsewhere to. So, what is the difference between those? And where do we find them? Just very briefly in a similar list if you would kindly please.
solarfields did a better job than I probably would've, so I would refer to his list. However, because you have the interest to learn, I would avoid using the automated tools until you understand how SBo handles packages, including dependencies (and dependencies of dependencies as they can get quite deep at times). They have a great HOWTO. The big things are to read the README and to check for dependencies. Both of these are easily viewable on SBo, but if you download the files, there will be a README file and a $PRGNAM.info file that will list the direct dependencies. Now, if any of those dependencies have their own dependencies, it will not be listed on the main file (to prevent duplication), so you may need to go several layers deep to get all dependencies.

Quote:
Originally Posted by solarfields View Post
slackrepo is different. It is a program very useful to create your own repository of precompiled packages, for example from SBo. I use this, as I have explained in my first post in this thread. slackrepo is meant to be used in a clean environment. This means, you should dedicate a virtual machine only to building packages. When you create a package, slackrepo will build its dependencies and then, when everything is completed and packages are ready, slackrepo will uninstall them, to keep your system clean. So when you build something else, only its own, required dependencies will be present at build time.
My only minor nitpick with this description is that it will actually do all building in a chroot that is mounted over the main system. This ensures the main system remains clean even if programs decide to modify things they aren't supposed to or place files outside of DESTDIR where makepkg can't track them. When everything is done, rather than uninstalling packages, it simply unmounts the chroot and then deletes the folder containing the changes to the filesystem.

You might have already known this and were just simplifying it for your explanation. If so, I apologize.

Sorry for my novel
 
5 members found this post helpful.
Old 12-13-2018, 12:21 AM   #73
solarfields
Senior Member
 
Registered: Feb 2006
Location: slackalaxy.com
Distribution: Slackware, CRUX
Posts: 1,456

Rep: Reputation: 1004Reputation: 1004Reputation: 1004Reputation: 1004Reputation: 1004Reputation: 1004Reputation: 1004Reputation: 1004
Quote:
My only minor nitpick with this description is that it will actually do all building in a chroot that is mounted over the main system. This ensures the main system remains clean even if programs decide to modify things they aren't supposed to or place files outside of DESTDIR where makepkg can't track them. When everything is done, rather than uninstalling packages, it simply unmounts the chroot and then deletes the folder containing the changes to the filesystem.
I did not know this. Thank you for the clarification!
 
1 members found this post helpful.
Old 12-13-2018, 01:38 AM   #74
ruario
Senior Member
 
Registered: Jan 2011
Location: Oslo, Norway
Distribution: Slackware
Posts: 2,557

Rep: Reputation: 1762Reputation: 1762Reputation: 1762Reputation: 1762Reputation: 1762Reputation: 1762Reputation: 1762Reputation: 1762Reputation: 1762Reputation: 1762Reputation: 1762
Quote:
Originally Posted by bassmadrigal View Post
I think most use cases can be summed up with:
  • Manual - ./configure, make, make install
  • Creating your own scripts to automate building
  • Using other's scripts (like from SlackBuilds.org)
  • Using tools to handle scripts and/or dependencies automatically (sbopkg, sboui, sbotools, slackrepo, etc)
  • Manually using 3rd-party pre-compiled repos (Alien Bob, SlackOnly, etc)
  • Using automated tools to work with 3rd-party pre-compiled repos (slackpkg+, slapt-get, etc)
Quote:
Originally Posted by solarfields View Post
sbopkg is an interface to SBo. It has a very similar look and feel to pkgtool. It does not resolve dependency directly, rather you can generated the so called build queues, by a script called sqg, which is included. If you want to generate queues for everything at SBO, you run sqg -a. Be patient.

sboui is a tool with a look and feel similar to midnight commander. It has its own capability to manage stuff from SBo, and in addition it can 'drive' other tools such as sbopkg and sbotools.

sbotools is a suite of commands that have a ports-like feel. They directly resolve dependencies.

slackrepo is different. It is a program very useful to create your own repository of precompiled packages, for example from SBo. I use this, as I have explained in my first post in this thread. slackrepo is meant to be used in a clean environment. This means, you should dedicate a virtual machine only to building packages. When you create a package, slackrepo will build its dependencies and then, when everything is completed and packages are ready, slackrepo will uninstall them, to keep your system clean. So when you build something else, only its own, required dependencies will be present at build time.
One thing that was missing from the above two posts is a tool that Richard Cranium mentioned.

Quote:
Originally Posted by Richard Cranium View Post
If there's no slackbuild for the item, I'll try to use src2pkg to make one for me.
src2pkg is something I have seen many Slackers mention using. It automates turning a source package into a Slackware package (amongst other things) ‘automagically’. The author Gilbert Ashley (gnashley) is also a regular of these forums, and he is both very knowledgeable and very helpful.

If you are avoiding automation as a way to learn you might want to skip it initially, but keep it in the back of your mind as it could come in very handy in the future.

Last edited by ruario; 12-13-2018 at 01:41 AM.
 
3 members found this post helpful.
Old 12-13-2018, 02:56 PM   #75
solarfields
Senior Member
 
Registered: Feb 2006
Location: slackalaxy.com
Distribution: Slackware, CRUX
Posts: 1,456

Rep: Reputation: 1004Reputation: 1004Reputation: 1004Reputation: 1004Reputation: 1004Reputation: 1004Reputation: 1004Reputation: 1004
Yes. Src2pkg is great. I used it before i decided to learn how slackbuilds work.

Last edited by solarfields; 12-13-2018 at 02:58 PM.
 
  


Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off



Similar Threads
Thread Thread Starter Forum Replies Last Post
[SOLVED] Can't install packages with slackpkgplus from third-party repositories glats Slackware 5 04-19-2015 02:52 AM
I want to add additional Third party packages to my CentOS 6.3 ISO image. gaytes Red Hat 1 08-22-2012 07:00 PM
where do you get your third party packages for slackware?? danix85 Slackware 24 05-10-2010 10:02 PM
Doesn't having to deal with all these third party packages become a load of ...? Allamgir Slackware 10 12-30-2009 09:08 AM

LinuxQuestions.org > Forums > Linux Forums > Linux - Distributions > Slackware

All times are GMT -5. The time now is 05:17 AM.

Main Menu
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Open Source Consulting | Domain Registration