How to create installer for linux mint - linux

I have created rpm for my software which works fine for fedora. But this fails whenever I want to install the same in linux mint. because linux mint supprts .deb file for installation. So I want to create installer package for my software which will be compatible in linux mint.

Check out the program alien, which allows you to manipulate foreign packages on a linux distro. Note that this is fine for installing simple packages, but you should build the package from source if you intend to distribute to a large audience.

Another great tool at your disposal for this would be fpm. It allows to create several different package types from many different things, like rpm's. It currently works with the following:
Sources:
gem (even autodownloaded for you)
python modules (autodownload for you)
pear (also downloads for you)
directories
tar(.gz) archives
rpm
deb
node packages (npm)
Targets:
deb
rpm
solaris
tar
directories
Mac OS X .pkg files (osxpkg)
You can find it here: https://github.com/jordansissel/fpm

you can use alien if you want and that's the recommended way to do it actually, but you can install it with rpm too. just install rpm:sudo apt-get install rpm then run sudo rpm -i package_name

Related

copying installed binaries from linux machine

I recently installed a program from binaries. Unfortunately, I had not copied the source to a personal repo . the host of the binaries has decided not to support it anymore, and is not hosting it
However, we have chosen to stick to this version. I do have access to machines with this software installed.
Is it possible to copy the binaries from the installed software?
This was installed using rpm -i
Technically yes.
you need to find all files installed with a package and copy all of them to corresponding path in target machine but it depends on package and scripts has been run before/after file copy in package installation process.
for finding files installed from an rpm you can try this:
# rpm -ql httpd
RPM options used:
-q : this is a general rpm query
-l : list package content

Linux Installation libX11-devel

I am trying to build QT4 (porting from Redhat 5 to 7 with an upgraded gcc compiler) in RedHat 7 and I was getting an error saying X11/Xlib.h can't be found. Anyways, after doing some research most people said to install libX11-devel to get those x11 libraries. Since I am using an offline machine I can't do "apt-get" type commands and have to manually install RPMs. So, I went to my RH-7 installation DVD and got "libX11-devel-1.6.3-3.el7.x86-64" (I have 64 bit OS) and tried to install using "yum install libX11-devel-1.6.3-3.el7.x86_64" and I am getting dependencies errors. It's saying
...Requires: pkgconfig(kbproto)
...Required: pkgconfig(xcb)
...Requires: pkgconfig(xproto)
...Requires: pkgconfig(xcb) >= 1.1.92
So, here are my questions.
1) when it says "pkgconfig(kbproto)", is it saying find the "kbproto....RPM" and do a "yum install". In my dvd I only have "xorg-x11-proto-devel-7.7.13.el7.noarch.rpm". Do I have to somehow find "xorg-x11-proto......x86_64.rpm" since it's a 64 bit machine?
2) Is there a difference between "yum install" and pkgconfig "install"? Are there any other installation variants in Linux?
3)For an offline machine, Is there anyway I can get all the dependencies and install everything at once ?
4) Why is it saying "xcb" requires twice. If I just get a xcb...rpm version above 1.1.92 can I just install it once?
Before actually answering the questions, I am going to suggest to see if you can get the latest version of the packages. The packages on the installation DVD may be really out of date and contain known vulernabilities, and other bugs. Can you use yumdownloader - in an online environment - to download the latest version onto a separate DVD and use that as the installation source? See https://access.redhat.com/solutions/10154 for more information.
To answer the questions themselves:
Requires: foo can refer to a package foo or a "feature" foo. pkgconfig(kbproto) is a "feature" (or virtual requires). You can use yum/rpm to see what provides this. On my Fedora box, for example, rpm -q --provides xorg-x11-proto-devel shows that this package indeed provides pkgconfig(kbproto).
As for x86_64 vs noarch, it doesn't matter. noarch packages work everywhere. Other packages are restricted to the platform. So x86_64 only works on intel/amd x86 64-bit machines. Installing noarch should be fine in your case. If you only had a i686 package, though, that wouldn't be sufficient. You would have to find a x86_64 or noarch package.
Yes, there's a big difference between yum and pkg-config. They do completely different things. One is a system tool for installing RPM packages. The other is a tool for developers for using the right headers and compiler flags. If your concern is finding/installing RPMs, do not use pkg-config directly.
Do you have access to an online machine that can access the RHEL 7 yum repositories? On that machine, do something like this:
mkdir rhel7-packages
cd rhel7-packages
yum provides '*/X11/Xlib.h' # make a note of the package that provides this file. it's libX11-devel on Fedora here
yumdownloader --resolve libX11-devel # download libX11-devel and all dependencies not installed on the system
Then copy/install the RPMs on the machine without internet access.
It's probably printing out xcb twice because it's two different requirements. The unversioned requirement will be satisfied if you install any verison of xcb. The versioned requirement will only be satisfied if you install 1.1.92. If you install 1.1.92, it will satisified both the requirements.
1.
You have to resolve the dependency on the system where you are building your package. This means you need to have those dependencies installed, inclusing libX11-devel. To do that, download the RPMs manually from EL7 repos to local disk and run this:
$ mkdir -p /tmp/libX11_dep_rpms && cd /tmp/libX11_dep_rpms
# Download all dependencies from here. All your packages should be available here:
# http://mirror.centos.org/centos-7/7/os/x86_64/Packages/
# Then install
$ yum localinstall *.rpm
# After this you should be able to build your qt4 package, provided all dependencies are resolved. Otherwise, repeat the procedure for all dependencies
# If you can't download packages, then you need to create a FULL DVD ISO that will contain all packages.
2.
pkgconfig ensures that a requirement is coming from a particular build that provides a particular version of the library. Here are some detail.
3.
Get the Everything ISO from EL7.
4.
This has to do with the pkgconfig and library versions.

How to install Sqelectron in Linux?

I'm a new Linux user and I want to install a MySQL IDE. I use Sqlectron in Windows, so I want to install this IDE now in my Linux computer. I downloaded the .zip file but I don't know what to that after unzip it.
I'm using Elementary OS based on Ubuntu
The latest version of sqlectron has a .deb file to install in debian like distro https://github.com/sqlectron/sqlectron-gui/releases/latest
To install sql electron goto https://github.com/sqlectron/sqlectron-gui/releases/tag/v1.35.0
find packages depending on your distro either deb, or rpm
for deb
sudo dpkg -i path/to/package_file.deb
for rpm
rpm -ivh path/to/package.rpm
Alternatively, you can double click the downloaded sqlectron*** .deb package and do a GUI based installation in Linux.

how to backup a installed rpm package in redhat?

I was install a package by rpm command in redhat, but the package is failure now.
I want create a new package from installed package.
what can I do?
This command would help you in that,
rpm -Fvh –repackage rpm-file-name.rpm
Here rpm-file-name.rpm is an existing package in Linux which will be repackage by using above option.
From man page of rpm;
–repackage Re-package the files before erasing.
–replacefiles Install the packages even if they replace files from
other, already installed, packages.
–replacepkgs Install the packages even if some of them are already
installed on this system.
rpmrebuild is built for re-creating RPM package files from already installed packages. There are options which allow you to tailor the packaging, but the most simple invocation just produces an RPM file from an installed package. Example: rpmrebuild coreutils

download emacs binary for linux?

I am trying to install emacs in offline computer.
but every time I try to build from the source and install it, it doesn't make it.
too complicated.
(terminal ./configure => error try with --without-makeinfo,
after a while, error try with --without-x,
after a while, error can't find emacs version...(and I also want to use X version))
so I want to download emacs binary file but I can't find for linux one.
where can I download pre-build binary emacs 23.3(lastest) for ubuntu?
I can download emacs 23.3 binary file for windows but not for ubuntu.
You could get the deb file directly from http://archive.ubuntu.com/ubuntu/pool/universe/e/emacs-snapshot/emacs-snapshot_20090909-1_amd64.deb and then try to install it using dpkg -i but there will probably be dependencies which you might miss. I'd suggest you try an apt-get install emacs-snapshot on your target machine. It will tell you all the packages it needs to fetch (along with URLs). Fetch all of them from a machine connected to the net and then dpkg -i those packages.
You can try the Ubuntu Emacs PPA here.
type in terminal
apt-get update
apt-get install emacs
for compile, are you download last version ? http://ftp.gnu.org/pub/gnu/emacs/
you can download deb file here
http://ir.archive.ubuntu.com/ubuntu/pool/main/e/emacs23/

Resources