Install Deb Package On Arch Linux Install
Howdy, I've been looking everywhere for an answer to this: I have a.deb package for a program that I installed in Ubuntu. Now I want to install it in Arch but can't find anywhere for a way to install it. I've tried with deb2targz and successfully extracted the contents. But after that I haven't got a clue as to what I have to do. I tried manually compiling it with make and make install, but no success. I found this post: But the aur package the post is referring to doesn't exist anymore. So I'm stumped.
Help, please. The program is CrossOver Pro, but I have the.deb package for the 64 bit version that works fine on my Ubuntu. It's not the demo that I found on AUR, it's the full edition that the codeweavers people gave out some time ago. That's why I want to install it, but haven't found a way to create the pkg.tar.gz that Arch Linux needs to install it. All I could do is use deb2targz to turn it into a tar.gz file, but when I try to do make and make install to compile it from that file I get squat, so I'm stumped, hehehehe.
The program is CrossOver Pro, but I have the.deb package for the 64 bit version that works fine on my Ubuntu. It's not the demo that I found on AUR, it's the full edition that the codeweavers people gave out some time ago.
Howdy, I've been looking everywhere for an answer to this: I have a.deb package for a program that I installed in Ubuntu. Now I want to install it in Arch but can't.
That's why I want to install it, but haven't found a way to create the pkg.tar.gz that Arch Linux needs to install it. All I could do is use deb2targz to turn it into a tar.gz file, but when I try to do make and make install to compile it from that file I get squat, so I'm stumped, hehehehe Just use Bump the version / update the md5sum as needed. Last edited by Mr.Elendig (2010-10-01 14:21:00).
Related articles. The is one of the major distinguishing features of Arch Linux. It combines a simple binary package format with an easy-to-use. The goal of pacman is to make it possible to easily manage packages, whether they are from the or the user's own builds.
Pacman keeps the system up to date by synchronizing package lists with the master server. This server/client model also allows the user to download/install packages with a simple command, complete with all required dependencies. Pacman is written in the C programming language and uses the format for packaging. Note: If a package in the list is already installed on the system, it will be reinstalled even if it is already up to date. This behavior can be overridden with the -needed option. Removing packages To remove a single package, leaving all of its dependencies installed: # pacman -R packagename To remove a package and its dependencies which are not required by any other installed package: # pacman -Rs packagename To remove a package, its dependencies and all the packages that depend on the target package. Warning:.
Users are expected to follow the guidance in the section to upgrade their systems regularly and not blindly run the following command. Arch only supports full system upgrades. See and for details. Pacman can update all packages on the system with just one command. This could take quite a while depending on how up-to-date the system is. The following command synchronizes the repository databases and updates the system's packages, excluding 'local' packages that are not in the configured repositories: # pacman -Syu Querying package databases Pacman queries the local package database with the -Q flag, the sync database with the -S flag and the files database with the -F flag.
See pacman -Q -help, pacman -S -help and pacman -F -help for the respective suboptions of each flag. Pacman can search for packages in the database, searching both in packages' names and descriptions: $ pacman -Ss string1 string2. Sometimes, -s's builtin ERE (Extended Regular Expressions) can cause a lot of unwanted results, so it has to be limited to match the package name only; not the description nor any other field: $ pacman -Ss '^vim-' To search for already installed packages: $ pacman -Qs string1 string2.
Arch Linux Install Package
To search for package file names in remote packages: $ pacman -Fs string1 string2. To display extensive information about a given package: $ pacman -Si packagename For locally installed packages: $ pacman -Qi packagename Passing two -i flags will also display the list of backup files and their modification states: $ pacman -Qii packagename To retrieve a list of the files installed by a package: $ pacman -Ql packagename To retrieve a list of the files installed by a remote package: $ pacman -Fl packagename To verify the presence of the files installed by a package: $ pacman -Qk packagename Passing the k flag twice will perform a more thorough check.
To query the database to know which package a file in the file system belongs to: $ pacman -Qo /path/to/filename To query the database to know which remote package a file belongs to: $ pacman -Fo /path/to/filename To list all packages no longer required as dependencies (orphans): $ pacman -Qdt. Tip: Add the above command to a pacman post-transaction to be notified if a transaction orphaned a package.
This can be useful for being notified when a package has been dropped from a repository, since any dropped package will also be orphaned on a local installation (unless it was explicitly installed). To avoid any 'failed to execute command' errors when no orphans are found, use the following command for Exec in your hook: /usr/bin/bash -c '/usr/bin/pacman -Qtd /usr/bin/echo '= None found.'
' To list all packages explicitly installed and not required as dependencies: $ pacman -Qet To list a dependency tree of a package: $ pactree packagename To list all the packages recursively depending on an installed package, use whoneeds from AUR: $ whoneeds packagename or the reverse flag to pactree: $ pactree -r packagename See for more examples. Database structure The pacman databases are normally located at /var/lib/pacman/sync. For each repository specified in /etc/pacman.conf there will be a corresponding database file located there.
Database files are tar-gzipped archives containing one directory for each package, for example for the package:% tree which-2.20-6 which-2.20-6 - depends `- desc The depends file lists the packages this package depends on, while desc has a description of the package such as the file size and the MD5 hash. Cleaning the package cache Pacman stores its downloaded packages in /var/cache/pacman/pkg/ and does not remove the old or uninstalled versions automatically, therefore it is necessary to deliberately clean up that folder periodically to prevent such folder to grow indefinitely in size. The built-in option to remove all the cached packages that are not currently installed is: # pacman -Sc. Warning:.
Only do this when certain that previous package versions are not required, for example for a later. Pacman -Sc only leaves the versions of packages which are currently installed available, older versions would have to be retrieved through other means, such as the. It is possible to empty the cache folder fully with pacman -Scc.
In addition to the above, this also prevents from reinstalling a package directly from the cache folder in case of need, thus requiring a new download. It should be avoided unless there is an immediate need for disk space. Because of the above limitations, consider an alternative for more control over which packages, and how many, are deleted from the cache: The paccache script, provided by the package itself, deletes all cached versions of each package regardless of whether they're installed or not, except for the most recent 3, by default: # paccache -r.
Tip: You can create to run this automatically after every pacman transaction. See for examples. You can also define how many recent versions you want to keep: # paccache -rk 1 To remove all cached versions of uninstalled packages, re-run paccache with: # paccache -ruk0 See paccache -h for more options.
AUR and AUR are two further alternatives. Additional commands Download a package without installing it: # pacman -Sw packagename Install a 'local' package that is not from a remote repository (e.g. The package is from the ): # pacman -U /path/to/package/packagename-version.pkg.tar.xz To keep a copy of the local package in pacman's cache, use: # pacman -U file:/// path/to/package/packagename-version.pkg.tar.xz Install a 'remote' package (not from a repository stated in pacman's configuration files): # pacman -U To inhibit the -S, -U and -R actions, -p can be used. Pacman always lists packages to be installed or removed and asks for permission before it takes action.
Installation reason The pacman database distinguishes the installed packages in two groups according to the reason why they were installed:. explicitly-installed: the packages that were literally passed to a generic pacman -S or -U command;. dependencies: the packages that, despite never (in general) having been passed to a pacman installation command, were implicitly installed because by another package that was explicitly installed. When installing a package, it is possible to force its installation reason to dependency with: # pacman -S -asdeps packagename. Tip: Installing optional dependencies with -asdeps will cause it such that if you, pacman will also remove leftover optional dependencies.
When reinstalling a package, though, the current installation reason is preserved by default. The list of explicitly-installed packages can be shown with pacman -Qe, while the complementary list of dependencies can be shown with pacman -Qd. To change the installation reason of an already installed package, execute: # pacman -D -asdeps packagename Use -asexplicit to do the opposite operation. Search for a package that contains a specific file Sync the files database: # pacman -Fy Search for a package containing a file, e.g.: # pacman -Fs pacman core/pacman 5.0.1-4 usr/bin/pacman usr/share/bash-completion/completions/pacman extra/xscreensaver 5.36-1 usr/lib/xscreensaver/pacman. Tip: You can set a cron job or a systemd timer to sync the files database regularly.
For advanced functionality install, which uses a separate database with all files and their associated packages. Configuration Pacman's settings are located in /etc/pacman.conf: this is the place where the user configures the program to work in the desired manner. In-depth information about the configuration file can be found in. General options General options are in the options section. Read or look in the default pacman.conf for information on what can be done here.
Comparing versions before updating To see old and new versions of available packages, uncomment the 'VerbosePkgLists' line in /etc/pacman.conf. The output of pacman -Syu will be like this: Package (6) Old Version New Version Net Change Download Size extra/libmariadbclient 10.1.9-4 10.1.10-1 0.03 MiB 4.35 MiB extra/libpng 1.6.19-1 1.6.20-1 0.00 MiB 0.23 MiB extra/mariadb 10.1.9-4 10.1.10-1 0.26 MiB 13.80 MiB Skip package from being upgraded. Warning: Be careful in skipping packages, since are unsupported. To have a specific package skipped when the system, specify it as such: IgnorePkg=linux For multiple packages use a space-separated list, or use additional IgnorePkg lines. Also, glob patterns can be used.
If you want to skip packages just once, you can also use the -ignore option on the command-line - this time with a comma-separated list. It will still be possible to upgrade the ignored packages using pacman -S: in this case pacman will remind you that the packages have been included in an IgnorePkg statement. Skip package group from being upgraded. Tip: Pacman issues warning messages about missing locales when updating a package for which locales have been cleared by localepurge or bleachbit.
Commenting the CheckSpace option in pacman.conf suppresses such warnings, but consider that the space-checking functionality will be disabled for all packages. Maintain several configuration files If you have several configuration files (e.g. Main configuration and configuration with repository enabled) and would have to share options between configurations you may use Include option declared in the configuration files, e.g.: Include = /path/to/common/settings where /path/to/common/settings file contains the same options for both configurations. Hooks Pacman can run pre- and post-transaction hooks from the /usr/share/libalpm/hooks/ directory; more directories can be specified with the HookDir option in pacman.conf, which defaults to /etc/pacman.d/hooks. Hook file names must be suffixed with.hook. For more information on alpm hooks, see.
Repositories and mirrors Besides the special section, each other section in pacman.conf defines a package repository to be used. A repository is a logical collection of packages, which are physically stored on one or more servers: for this reason each server is called a mirror for the repository. Repositories are distinguished between and. The order of repositories in the configuration file matters; repositories listed first will take precedence over those listed later in the file when packages in two repositories have identical names, regardless of version number. In order to use a repository after adding it, you will need to the whole system first. Each repository section allows defining the list of its mirrors directly or in a dedicated external file through the Include directive: for example, the mirrors for the official repositories are included from /etc/pacman.d/mirrorlist.
See the article for mirror configuration. Package security Pacman supports package signatures, which add an extra layer of security to the packages. The default configuration, SigLevel = Required DatabaseOptional, enables signature verification for all the packages on a global level: this can be overridden by per-repository SigLevel lines.
For more details on package signing and signature verification, take a look. Troubleshooting 'Failed to commit transaction (conflicting files)' error If you see the following error: error: could not prepare transaction error: failed to commit transaction (conflicting files) package: /path/to/file exists in filesystem Errors occurred, no packages were upgraded. Why this is happening: pacman has detected a file conflict, and by design, will not overwrite files for you. This is a design feature, not a flaw.
The problem is usually trivial to solve. A safe way is to first check if another package owns the file ( pacman -Qo /path/to/file).
If the file is owned by another package,. If the file is not owned by another package, rename the file which 'exists in filesystem' and re-issue the update command. If all goes well, the file may then be removed.
If you had installed a program manually without using pacman or a frontend, for example through make install, you have to remove it and all its files and reinstall properly using pacman. Every installed package provides a /var/lib/pacman/local/ $package-$version/files file that contains metadata about this package.
If this file gets corrupted, is empty or goes missing, it results in file exists in filesystem errors when trying to update the package. Such an error usually concerns only one package.
Instead of manually renaming and later removing all the files that belong to the package in question, you may exceptionally run pacman -S -force $package to force pacman to overwrite these files. Warning: It is extremely easy to break your system even worse using this approach. Use this only as a last resort if the method from is not an option.
Even if pacman is terribly broken, you can fix it manually by downloading the latest packages and extracting them to the correct locations. The rough steps to perform are. Determine dependencies to install. Download each package from a mirror of your choice. Extract each package to root.
Reinstall these packages with pacman -Sf to update the package database accordingly. Do a full system upgrade If you have a healthy Arch system on hand, you can see the full list of dependencies with $ pacman -Q $(pactree -u pacman) but you may only need to update a few of them depending on your issue.
An example of extracting a package is # tar -xvpwf package.tar.xz -C / -exclude.PKGINFO -exclude.INSTALL Note the use of the w flag for interactive mode. Running non-interactively is very risky since you might end up overwriting an important file. Also take care to extract packages in the correct order (i.e.
Dependencies first). Contains an example of this process where only a couple pacman dependencies are broken.
Pacman crashes during an upgrade In the case that pacman crashes with a 'database write' error while removing packages, and reinstalling or upgrading packages fails thereafter, do the following:. Boot using the Arch installation media. Preferably use a recent media so that the pacman version matches/is newer than the system. Mount the system's root filesystem, e.g.
Mount /dev/sdaX /mnt as root, and check the mount has sufficient space with df -h. Mount the proc, sys and dev filesystems as well: mount -t proc proc /mnt/proc; mount -rbind /sys /mnt/sys; mount -rbind /dev /mnt/dev. If the system uses default database and directory locations, you can now update the system's pacman database and upgrade it via pacman -root=/mnt -cachedir=/mnt/var/cache/pacman/pkg -Syyu as root. After the upgrade, one way to double-check for not upgraded but still broken packages: find /mnt/usr/lib -size 0.
Followed by a re-install of any still broken package via pacman -root /mnt -cachedir=/mnt/var/cache/pacman/pkg -S package. 'Unable to find root device' error after rebooting Most likely your initramfs got broken during a kernel update (improper use of pacman's -force option can be a cause). You have two options; first, try the Fallback entry. Tip: In case you removed the Fallback entry, you can always press the Tab key when the bootloader menu shows up (for Syslinux) or e (for GRUB or systemd-boot), rename it initramfs-linux-fallback.img and press Enter or b (depending on your bootloader) to boot with the new parameters. Once the system starts, run this command (for the stock kernel) either from the console or from a terminal to rebuild the initramfs image: # mkinitcpio -p linux If that does not work, from a current Arch release (CD/DVD or USB stick), your root and boot partitions. Then using arch-chroot: # arch-chroot /mnt # pacman -Syu mkinitcpio systemd linux.