CrossOver Support - Community Forums

Important Information These are community forums and not official technical support. If you need official support: Contact Us

CrossOver Linux
Discussion about CrossOver Linux

The following comments are owned by whoever posted them. We are not responsible for them in any way.

Back to Threads Reply to Thread

Installing offline (with all dependencies)

Hi there, I'm a software archiver. Meaning that I like to have all my software stored locally for local offline distribution. This can be a challenge with Linux due to the way repositories, package managers, and of course dependencies work. One way you can do this is to create a local or offline repository but that can be up to 150 gigs and you'll only ever use 10% of it. Not to mention the bandwidth. Another way is to backup or download all the deb files from the apt/cache directory and install them all with dpkg -i *.deb This is what I'd prefer to do since I can write a script to do it and even include the deb file used to install Crossover. However Crossover Linux not only requires more dependencies, it continues to crab them even after you've created a new bottle or installed a new program. I suspect Crossover doesn't ship with it's own set of dependencies because they'd differ for each distribution. So, is there an easy way to find out and download dependencies Crossover might need fora given distro so that you've got everything you need in one place on your hard drive. Any information would be greatly appreciated thank you.

There's a couple thoughts here:

1) Pretty much the same dependencies as Wine, needed and optional, so you can look at that.

2), that should help.

3) cxdiag will tell you what might be missing (/opt/cxoffice/bin/cxdiag or ~/cxoffice/bin/cxdiag). It's command line...

With that in mind, building the whole picture shouldn't be too difficult.

I ran the command ./bin/cxdiag --debug but I'm not sure how to use the information. Here's an example of the report

"Title"="Missing 32bit library"
"Description"="Provides support for some ISDN cards. Very few applications need this."

"Title"="Missing 32bit library"
"Description"="Makes it possible to find and use the system's TrueType fonts. This is strongly recommended for office-type applications."

"Title"="Missing 32bit library"
"Description"="Lets Windows applications access digital cameras."

"Title"="Missing 32bit library"
"Description"="Lets Windows applications use the GSM codec for audio compression and decompression."

"Title"="Missing 32bit library"
"Description"="Lets Windows applications access LDAP servers."

"Title"="Missing 32bit library"
"Description"="Lets Windows applications access LDAP servers."

"Title"="Missing 32bit library"
"Description"="Needed by some Windows applications to play MP3 files."

"Title"="Missing 32bit library"
"Description"="Provides audio support to Windows applications."

"Title"="Missing 32bit library"
"Description"="This is needed by some games and CAD-like applications to perform off-screen rendering."

"Title"="Missing 32bit library"
"Description"="Lets Windows applications access scanners."

"Title"="Missing 32bit library"
"Description"="This is needed by some applications that need to manipulate TIFF images in their user interface."

"Title"="Missing 32bit library"
"Description"="Lets Windows applications access video devices."

"Title"="Missing 32bit library"
"Description"="This is needed for most CAD-like applications and some games."

"Title"="Missing 32bit library"
"Description"="This is needed if your display spans multiple screens. If your computer has a single screen then you don't need it."

"Title"="Missing 32bit library"
"Description"="This library makes it possible for Windows applications read and write XML files."

"Title"="Missing 32bit library"
"Description"="This library lets Windows applications perform queries and transformations on XML files."

"Title"="Missing 32bit library"
"Description"="This is the preferred way to provide audio support to Windows applications."


"opengl.vendor"="VMware, Inc."

"opengl.version"="3.0 Mesa 12.0.6"

"opengl.renderer"="Gallium 0.4 on SVGA3D; build: RELEASE; LLVM;"


"Title"="OpenGL has no S3TC texture support"
"Description"="This is needed to run games using textures in the S3TC format."

Well, for instance...

[MissingLibCapi20] -> your system is missing libcapi20
Do you need it? it provides support for some ISDN cards. Very few applications need this.


[MissingLibFontconfig] -> which means libfontconfig isn't found on your system
Do you need it? Makes it possible to find and use the system's TrueType fonts. This is strongly recommended for office-type applications.

You'll notice I'm just repeating the original info as this should be pretty much self-explanatory. Also note that some libraries are "suggested", others are "recommended". None of the missing libraries are fundamental to Crossover itself, but they could be needed for various software you intend to use with Crossover. It's up to you to decide if you want to keep a copy of those libraries offline for later use. If you are running on a 64bit system, you will want the 32bit version of those libraries (as stated by cxdiag). 64bit support is new for Crossover and might not be fully cooked just yet, and 32bit is still what most people use.

Of course, none of this gives you the exact nomenclature for your distro of choice. You'll have to use "apt search" or "apt-cache search" to try and figure out the exact name.

Ah I see, thanks. It it would be very tedious to copy all that into an apt-get install "list missing libs" is there an easier way to do it?

Mint Mag wrote:

Ah I see, thanks. It it would be very tedious to copy all that into
an apt-get install "list missing libs" is there an easier way to do

Short of writing a bash script with some regular expression to filter the output of cxdiag, I don't think so. And if you wrote that, it would probably be for a one time use.

I've been using Crossover for a while now, and you're the first to ask for this. I guess there hasn't been any demand for a tool to squirt out a list of libraries ready made for apt until now...

Good luck!

Any idea what the bash script could be? It's a shame there isn't a ppa for it otherwise you could just use apt-get install --install-recommends crossover. There isn't much of a demand because not a lot of software archives use desktop distro's of Linux.

Well, my bash/regular expression skills aren't that good, so I went with python instead...

This python3 script extracts the names, and adds "lib32-" in front of the names. I added "lib32-" because it would be the correct nomenclature for Arch, on which I am. You can modify the script for your distro, be it Debian or Ubuntu (you did mention PPAs).adds ":i386" at the end, as it is for Ubuntu I believe.

The script finally spits out a properly formatted command, ready to copy and paste on the command line. It's spit out with "apt", as I figure putting "pacman" would just make me look like a dick. 😀

The code is licenced under whatever you like, be it GPL or MIT, I don't care at all. In any case, it was a fun intellectual exercise. If you need help with it, just tell me what you need.

# -*- coding: utf-8 -*-

import subprocess

if __name__ == '__main__':
    # Since path might have been change from defaults
    pathToDiag = input("Please give the path to cxdiag" +
                        " (example: /opt/cxoffice/bin):")
    pathToDiag = pathToDiag + "cxdiag"
    # Debug added to get all libraries
    output = str([pathToDiag, "--debug"],
    items = output.split()
    # initialize string for the final suggested command
    command = "apt install"
    for item in items:
        if ".so." in item:
            # shouldn't be any dots in pacakge names, but a good thing
            # to work with here
            decomposed = item.split(".")
            # only the first element is useful, being decomposed[0]
            # ":i386" added to fit Ubuntu nomenclature, to be modified for other
            # distros
            final = decomposed[0] + ":i386"
            command = command + " " + final
    print("\n \n *************************************************************")
    print("final suggested command: \n")

Thank you very much, but and please don't hate me for this but it looks like a lot of those packages arn't even in the repository.

I can't really help you there... I haven't used Ubuntu at all for many years now, so I'm a bit out of touch. Think of it as the corruption of Arch, where all libraries exist! :P

Still, this comes to mind:

Did you add multi-arch support?:

sudo dpkg --add-architecture i386; sudo apt-get update

Also, these two links might help:

for ubuntu in general

There's a list of packages for 14.04 for manual installation, so I guess that might be useful if out of date. And the second link is for the latest version they refer to:

I found a solution and I'll post it encase anyone else is interested.

On either a fresh install, or a live version of Ubuntu or Ubutntu based Distro's open terminal and do the following:

  1. sudo apt-get update
  2. sudo gdebi crossover.deb
  3. highlight and copy all the packages crossover installs. You'll see them in the terminal.
  4. Launch crossover and it add more packages with sh -c add them to the list in your text document.

Now you should have a complete list of packages needed to get crossover running. Simply use sudo apt-get -d then add the list of debs from the text document to download them.

1 to 11 of 11

Please Note: This Forum is for non-application specific questions relating to installation/configuration of CrossOver. All application-specific posts to this Forum will be moved to their appropriate Compatibility Center Forum.

CrossOver Forums: the place to discuss running Windows applications on Mac and Linux

CodeWeavers or its third-party tools process personal data (e.g. browsing data or IP addresses) and use cookies or other identifiers, which are necessary for its functioning and required to achieve the purposes illustrated in our Privacy Policy. You accept the use of cookies or other identifiers by clicking the Acknowledge button.
Please Wait...