About tar file and future updates

Being a “plug and play” type of guy, unzipping tar files is not easy for me.
Think this link will suffice to get me started at installing latest Thunderbird:

Question is.
After installing (if successful!), will the app. automatically update?

Presently working with MX KDE 23.3

Tar.(Xz,gz,bz2,etc.) Is a archival format. While you can put executables in it, it does not help in managing dependencies or updates.

2 Likes

So, it’s like a totally separate thing if installed.

It doesn’t add a link to database repo.

Was trying to avoid Flatpak install 'cause of its size after installation.

1 Like

Look at the contents of the tar.
If it works after “installing” (decompressing to the right place), then it does not have special dependencies. In that case it is very easy to transform it into a .deb file.

Edit:
A written guide:

Edit2: :slight_smile:

I have prepared a number of debs for my own purpose, it’s easier to maintain my systems so. Oracle does not pack jre into DEB, only RPM.
But I extracted the tar they provide, and created the structure needed for dpkg-deb.

I can provide you more details about it, if you want - espacially the contents in DEBIAN folder maybe useful for you now.

Or a simple thing, I made my own font collection apt installable:

laco@DellG3kde:~/Dokumentumok/deb-project/myfonts$ tree
.
├── DEBIAN
│   ├── control
│   └── postinst
└── usr
    └── share
        └── fonts
            ├── opentype
            │   └── Baron_Kuffner.otf
            └── truetype
                ├── Accent.ttf
                ├── Alfphabet-IV.ttf
                ├── ALGER.TTF
                ├── ALIEN5.TTF
                ├── Allura-Regular.ttf
                ├── Alperton.ttf
                ├── Altitude.ttf
                ├── Anita semi square.ttf
                ├── ani.ttf
                ├── ARBONNIE.ttf
                ├── Argentine-Bold.ttf
                ├── Argentine-Regular.ttf
                ├── ariblk_0.ttf
                ├── ariblk.ttf
                ├── Arizona.ttf
                ├── Artistic Pro.ttf
                ├── Ballad Script Pro.ttf
                ├── Bay Script Pro.ttf
                ├── Belsize.ttf
                ├── BenchNine-Bold.ttf
                ├── BenchNine-Light.ttf
                ├── BenchNine-Regular.ttf
                ├── Bernhard Elegant.ttf
                ├── Bernhard Fashion Pro.ttf
                ├── Blackout-2am.ttf
                ├── Blackout Midnight.ttf
                ├── Blackout Two AM_0.ttf
                ├── Blackout Two AM.ttf
                ├── Bluff Pro.ttf
                ├── Boa Script.ttf
                ├── BOD_PSTC.TTF
                ├── Bonita.ttf
                ├── BOOKOSBI.TTF
                ├── BOOKOSB.TTF
                ├── BOOKOSI.TTF
                ├── BOOKOS.TTF
                ├── BouWeste.ttf
                ├── BRADHITC.TTF
                ├── BRITANIC.TTF
                ├── By_the_way.ttf
                ├── Calligraphic Script Pro.ttf
                ├── Calligraphic Script Swash.ttf
                ├── Calligraph Script Pro.ttf
                ├── Candice.ttf
                ├── Carattere-Regular.ttf
                ├── CENSCBK.TTF
                ├── Chandler Pro.ttf
                ├── Chunkfive.otf
                ├── Chunk.ttf
                ├── Civilite Pro.ttf
                ├── COLONNA.TTF
                ├── Comix-Regular.ttf
                ├── Commercial Script Pro.ttf
                ├── Curacao Pro.ttf
                ├── DINPro-BlackItalic.ttf
                ├── DINPro-Black.ttf
                ├── DINPro-BoldItalic.ttf
                ├── DINPro-Bold.ttf
                ├── DINPro-CondBlackItalic.ttf
                ├── DINPro-CondBlack.ttf
                ├── DINPro-CondBoldItalic.ttf
                ├── DINPro-CondBold.ttf
                ├── DINPro-CondExtlightItalic.ttf
                ├── DINPro-CondExtlight.ttf
                ├── DINPro-CondItalic.ttf
                ├── DINPro-CondLightItalic.ttf
                ├── DINPro-CondLight.ttf
                ├── DINPro-CondMediumItalic.ttf
                ├── DINPro-CondMedium.ttf
                ├── DINPro-CondThinItalic.ttf
                ├── DINPro-CondThin.ttf
                ├── DINPro-Cond.ttf
                ├── DINPro-ExtlightItalic.ttf
                ├── DINPro-Extlight.ttf
                ├── DINPro-Italic.ttf
                ├── DINPro-LightItalic.ttf
                ├── DINPro-Light.ttf
                ├── DINPro-MediumItalic.ttf
                ├── DINPro-Medium.ttf
                ├── DINPro-ThinItalic.ttf
                ├── DINPro-Thin.ttf
                ├── DINPro.ttf
                ├── Disciple.ttf
                ├── DouarOutline.ttf
                ├── edwardian-script-itc-1361504162.ttf
                ├── Elegant Script Pro.ttf
                ├── Fraktur Sawmill.ttf
                ├── Fraktur Stars No2.ttf
                ├── Fraktur Stars.ttf
                ├── FREESCPT.TTF
                ├── FRSCRIPT.TTF
                ├── Gainsborough Pro.ttf
                ├── Giulio Pro-Regular.ttf
                ├── Giulio Pro Shaded.ttf
                ├── glawbi.ttf
                ├── glawb.ttf
                ├── glawhi.ttf
                ├── glawh.ttf
                ├── glaw.ttf
                ├── GLECB.TTF
                ├── Greenford.ttf
                ├── Handmade Script Pro.ttf
                ├── HARLOWSI.TTF
                ├── HARNGTON.TTF
                ├── Harrogate Pro.ttf
                ├── Hayden Pro.ttf
                ├── Helena Pro.ttf
                ├── H.H. Samuel-font-defharo.ttf
                ├── Hidalgo Pro.ttf
                ├── Hobson.ttf
                ├── horizon-bt-11163.ttf
                ├── Hover.ttf
                ├── ITCKRIST.ttf
                ├── knewave-outline.ttf
                ├── KremlinScript-Bold.ttf
                ├── KUNSTLER.TTF
                ├── LeagueScriptNumberOne.otf
                ├── Linotype - DIN Engschrift LT Pro.ttf
                ├── Linotype - DIN Mittelschrift LT Pro.ttf
                ├── Linotype - DIN Next LT Pro Black Condensed Italic.ttf
                ├── Linotype - DIN Next LT Pro Black Condensed.ttf
                ├── Linotype - DIN Next LT Pro Black Italic.ttf
                ├── Linotype - DIN Next LT Pro Black.ttf
                ├── Linotype - DIN Next LT Pro Bold Condensed Italic.ttf
                ├── Linotype - DIN Next LT Pro Bold Condensed.ttf
                ├── Linotype - DIN Next LT Pro Bold Italic.ttf
                ├── Linotype - DIN Next LT Pro Bold.ttf
                ├── Linotype - DIN Next LT Pro Condensed Italic.ttf
                ├── Linotype - DIN Next LT Pro Condensed.ttf
                ├── Linotype - DIN Next LT Pro Heavy Condensed Italic.ttf
                ├── Linotype - DIN Next LT Pro Heavy Condensed.ttf
                ├── Linotype - DIN Next LT Pro Heavy Italic.ttf
                ├── Linotype - DIN Next LT Pro Heavy.ttf
                ├── Linotype - DIN Next LT Pro Italic.ttf
                ├── Linotype - DIN Next LT Pro Light Condensed Italic.ttf
                ├── Linotype - DIN Next LT Pro Light Condensed.ttf
                ├── Linotype - DIN Next LT Pro Light Italic.ttf
                ├── Linotype - DIN Next LT Pro Light.ttf
                ├── Linotype - DIN Next LT Pro Medium Condensed Italic.ttf
                ├── Linotype - DIN Next LT Pro Medium Condensed.ttf
                ├── Linotype - DIN Next LT Pro Medium Italic.ttf
                ├── Linotype - DIN Next LT Pro Medium.ttf
                ├── Linotype - DIN Next LT Pro Regular.ttf
                ├── Linotype - DIN Next LT Pro Ultra Light Condensed Italic.ttf
                ├── Linotype - DIN Next LT Pro UltraLight Condensed.ttf
                ├── Linotype - DIN Next LT Pro UltraLight Italic.ttf
                ├── Linotype - DIN Next LT Pro UltraLight.ttf
                ├── Marriage Pro.ttf
                ├── MathJax_AMS-Regular.otf
                ├── NIU-ACCESSARY-Light.ttf
                ├── NIU-ACCESSARY-Regular.ttf
                ├── NIU-ACCESSARY-Simbold.ttf
                ├── NIU-ACCESSARY-Thin.ttf
                ├── NIU-DISPLAY-Bold.ttf
                ├── Painter_PERSONAL_USE_ONLY.ttf
                ├── Palmer.ttf
                ├── Pamplona.ttf
                ├── PAPYRUS.TTF
                ├── PARCHM.TTF
                ├── Pedro Pro-Bold.ttf
                ├── Pedro Pro-Regular.ttf
                ├── pegasusregular.ttf
                ├── Philadelphia Pro Initials.ttf
                ├── Philadelphia Pro.ttf
                ├── seagbi.ttf
                ├── seagb.ttf
                ├── seagi.ttf
                ├── seag.ttf
                ├── Segment14_0.otf
                ├── Segment14.otf
                ├── segoeprb.ttf
                ├── segoepr.ttf
                ├── segoesc_0.ttf
                ├── segoescb.ttf
                ├── segoesc.ttf
                ├── segoeui_0.ttf
                ├── segoeuib_0.ttf
                ├── segoeuib.ttf
                ├── segoeuii_0.ttf
                ├── segoeuii.ttf
                ├── segoeuil.ttf
                ├── segoeui.ttf
                ├── segoeuiz_0.ttf
                ├── segoeuiz.ttf
                ├── seguisb.ttf
                ├── seguisym_0.ttf
                ├── seguisym.ttf
                ├── Velo Pro.ttf
                ├── Wilhelm Gotisch Pro.ttf
                ├── Yorkshire.ttf
                ├── Zabriskie Script-BoldItalic.ttf
                ├── Zabriskie Script-Bold.ttf
                ├── Zabriskie Script Caps-Bold.ttf
                ├── Zabriskie Script Caps-Regular.ttf
                ├── Zabriskie Script-Demi.ttf
                ├── Zabriskie Script-Heavy.ttf
                ├── Zabriskie Script-Italic.ttf
                ├── Zabriskie Script-Regular.ttf
                ├── Zabriskie Script Swash-BoldItalic.ttf
                ├── Zabriskie Script Swash-Bold.ttf
                ├── Zabriskie Script Swash-Demi.ttf
                ├── Zabriskie Script Swash-Heavy.ttf
                ├── Zabriskie Script Swash-Italic.ttf
                ├── Zabriskie Script Swash-Regular.ttf
                └── Zanzibar.ttf

Contents in DEBIAN folder:

laco@DellG3kde:~/Dokumentumok/deb-project/myfonts/DEBIAN$ cat control 
Package: myfonts
Version: 1.1
Section: misc
Priority: optional
Architecture: all
Maintainer: K.L. <my@email.adress>
Description: My custom fonts packaged

laco@DellG3kde:~/Dokumentumok/deb-project/myfonts/DEBIAN$ cat postinst 
fc-cache -fv
laco@DellG3kde:~/Dokumentumok/deb-project/myfonts/DEBIAN$
2 Likes

It is usually OK to install from a tarfile, but it is best to do the install either in your home directory or in /usr/local. That keeps it away from software installed by the package manager from your repo… they can clash.

Be careful to get the tarfile from a reputable source.

4 Likes

Why have a .deb file if it installs properly?

2 Likes

???

I misread something, I’m sorry.
I thought it’s a problem for you, that something is installed, but the package manager is not aware of it. So it cannot remove it or update it for example.
If that’s fine, you don’t need to fiddle with debs.
However, if you install the thing via deb, you can easily remove.
You can update it.
You can specify dependencies in the control file if you need.

Edit (again :slight_smile: ):
if you install something outside of the package manager, and later you try to install an other package, which provides the same file you installed via just uncompressing a .tar, your original file from the tar will be overwritten without warning. Normally if you try to install packages, which would provide the same file, the package manager throws an error, and won’t install the conflicting packaga.

3 Likes

Can the .tar file be flipped over into a .deb ?


A bit late in responding. Yard work…

2 Likes

Yes, but not automatically. Requires some work.

2 Likes

Yup.

Was going to delete my last post.

1 Like

It depends what the contents of the tar file do. If you ensure tarfile binaries are installed outside /usr/bin then they will not be overwritten by a package install, but there may be duplicates. That can be handled.
One thing you must do… if there are install scripts indide the tarfile, look at them , see where they put things, and modify if necessary, before you run the script.

3 Likes

“tar” is mnemoic for “Tape ARchive”… An ancient UNIX file format… Another common one from way back when is a CPIO (copy in and out) archive…

“deb” files are actually CPIO archive files…

Note : DEB files will have lotsa Debian (or other derivatives) stuff in them. A tar archive probably wouldn’t.

Some apps that are distributed as tar archives have their own installers, some are “portable” - i.e. you unarchive to some location - then run the binary from there. Some are source code and you need to make them.

I ALWAYS “test” or “type” the contents of a tar file before unarchiving it…

e.g. “tar tvf TARFILE.tar” - I’ve run into issues in the past where I’ve assume there was a folder structure inside the tar file - but there wasn’t, and trashed my “/”… Modern implementations of tar don’t need to be told an existing tar file is compressed, so “tar tvf TARFILE.tar.gz [TARFILE.tgz, TARFILE.tar.xz etc)” should work - however - when creating you need to specify “z” if you want it compress (default is “gzip” i.e. gz).

I noticed something odd with “tar” in busybox a few years back - it’s VERY fussy about the order of the switches…

e.g. tar -czvfp OUTFILE.tar.gz $FOLDER/FILE craps out in busybox - the last argument/switch needs to “f” to output to a file. So you need to tar -czvpf OUTFILE.tar.gz $FOLDER/FILE

I use tar to migrate large chunks of data - been using the same basic thing for 25+ years :

cd $SOURCE ; tar cvpf - | ( cd $DEST ; tar xvpf - )

I actually did a few “yardstick benchmarks” (migrating TBs of Data off a NetApp filer to a Nutanix Acropolis AFS virtual NAS) - and that was faster than rsync…

Depending whether you’re going over a network, and your switches do compression of packets, you may save some time/bandwidth by compressing on the fly too :
cd $SOURCE ; tar czvpf - | ( cd $DEST ; tar xzvpf - )
Also - the “v” isn’t always necessary - and may slow things down (verbose feedback).

3 Likes

I thought they were ar archive files?

I might try that.
rsync is terribly slow on a collection of large files… eg my VM qcow2 files.

The idea of rsync only updating changed files is not much use for a small number of large files most of which have changes. It is ideal for a large number of small files with few changes.
I know, tar will not avoid unchanged files, but that does not count for much with my collection of VM’s

Busybox has cutdown versions of the utilities. Clearly the cutdown tar has a bug.

2 Likes

When I did that TBs of data migration from NetApp to Nutanix - I did use rsync - to get the delta (because you can set rsync to only xfer modified files).

So - tar | () to get the vast bulk of the data - then rsync to copy any subsequent changes when it’s time to actually cutover… I can’t remember the exact “saving” when I did a few tests - but it was noticeable, and significant, maybe 2-3 time faster? And that was from one NFS mount (on the netapp) to another NFS mount (on the Nutanix).

Also - I got that arse about RPM is a CPIO archive - so you’re correct, DEB is an “ar” archive :smiley:

4 Likes

Did not know that.

It is interesting that inside a .deb there are tar files. You cant escape tar by going to deb… it just hides it

3 Likes

I’m not sure.
When installing via package from deb, definitely not limited to /usr/bin. Installed files may go anywhere in the filesystem.

1 Like

I think the package controlled area is limited
/bin, /sbin, /lib, /etc, and anywhere in /usr except /usr/local
If it went outside that I would be surprised, but I guess, as you say, there is nothing to stop a package writing anywhere.

I think the reverse is what we need to worry about… dont install stuff in areas known to be used by the package system. That is my working rule. It seems to keep me out of trouble.

1 Like