What does -devel mean when installing a library? - package

I'm reading some readmes and they contain some packages with "-devel", and some without. What is the difference?
sudo yum install gcc
(vs)
sudo yum install pcre-devel
What would happen if I installed "sudo yum install pcre" instead?

Devel libraries typically contain development header and debug resources that are not necessary for the end-user runtime. These headers and debug resources are used for the purpose of developing applications based on the library; not just running applications that require the library. If you install the package without -devel, it only installs the end-user runtime, and not the development headers and debug symbols.

Related

Error when trying to do (sudo apt install flex bison): The operation couldn’t be completed. Unable to locate a Java Runtime that supports apt [duplicate]

I was watching this, and, as you can see, the first command I am told to put in is:
sudo apt-get install python-setuptools
When I do this, it outputs:
sudo: apt-get: command not found
I have no idea why this is the case.
How can I resolve this so I am following the tutorial correctly?
Mac OS X doesn't have apt-get. There is a package manager called Homebrew that is used instead.
This command would be:
brew install python
Use Homebrew to install packages that you would otherwise use apt-get for.
The page I linked to has an up-to-date way of installing homebrew, but at present, you can install Homebrew as follows:
Type the following in your Mac OS X terminal:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
After that, usage of Homebrew is brew install <package>.
One of the prerequisites for Homebrew are the XCode command line tools.
Install XCode from the App Store.
Follow the directions in this Stack Overflow answer to install the XCode Command Line Tools.
Background
A package manager (like apt-get or brew) just gives your system an easy and automated way to install packages or libraries. Different systems use different programs. apt and its derivatives are used on Debian based linux systems. Red Hat-ish Linux systems use rpm (or at least they did many, many, years ago). yum is also a package manager for RedHat based systems.
Alpine based systems use apk.
Warning
As of 25 April 2016, homebrew opts the user in to sending analytics by default. This can be opted out of in two ways:
Setting an environment variable:
Open your favorite environment variable editor.
Set the following: HOMEBREW_NO_ANALYTICS=1 in whereever you keep your environment variables (typically something like ~/.bash_profile)
Close the file, and either restart the terminal or source ~/.bash_profile.
Running the following command:
brew analytics off
the analytics status can then be checked with the command:
brew analytics
As Homebrew is my favorite for macOS although it is possible to have apt-get on macOS using Fink.
MacPorts is another package manager for OS X:.
Installation instructions are at The MacPorts Project -- Download & Installation after which one issues sudo port install pythonXX, where XX is 27 or 35.
Conda can also be used as package manager. It can be installed from Anaconda.
Alternatively, a free minimal installer is Miniconda.
apt-get command is only available on Debian or Debian-based Linux distributions (such as Ubuntu, Linux Mint, Kali). It is not accessible on macOS. Alternatively, you can use package managers like Homebrew, MacPorts, and Nix. You can find equivalent commands for each as follows
brew install package_name
sudo port install package_name
nix-env -i package_name
Before installing above package managers, you need to install XCode first. Follow the operation instructions from this guide How to Fix "sudo apt-get command not found" Error on Mac Terminal.
Alternatively You can use the brew or curl command for installing things, wherever apt-get is mentioned with a URL...
For example,
curl -O http://www.magentocommerce.com/downloads/assets/1.8.1.0/magento-1.8.1.0.tar.gz

How can you search for, install and include/link C libraries on a mac?

I already have brew and xcode installed.
I'm trying to install the lz4 C library.
On Ubuntu I'd use:
apt search lz4
sudo apt install liblz4-dev
On Windows I'd use vcpkg.
How do you do it on a MacOs (v 11.3.1)?
I've tried:
brew install lz4
But my IDE isn't detecting the installed library or header file, so I'm assuming that's just the command line version.
Edit: CLion does not automatically detect libraries from your usr sub-directories, adding include targets using Cmake found the headers and libraries that brew did indeed install.
You might have to add -I /opt/homebrew/include -L /opt/homebrew/lib -llz4 to your compiler flags in the project settings. /opt/homebrew is for m1 macs, replace that with /usr/local if you're on intel.

How do I install libDb from source on OSX

I cloned this repo and then...
cd build_unix
../dist/configure
make
sudo make install
Then I go to the project I am trying to compile and run stack install I get the following...
Configuring BerkeleyDB-0.8.7...
Cabal-simple_mPHDZzAJ_1.24.2.0_ghc-8.0.2: Missing dependency on a foreign
library:
* Missing C library: db
This problem can usually be solved by installing the system package that
provides this library (you may need the "-dev" version). If the library is
already installed but in a non-standard location then you can use the flags
--extra-include-dirs= and --extra-lib-dirs= to specify where it is.
This is on OSX
Rather than compiling from source, you could use homebrew:
brew install berkeley-db

Debian APT - some questions

How can I check which packages are currently installed?
How can I find all packages that are not installed?
Is possible to uninstall package and all files of that package (config, temporaries, etc.)?
I'm using Debian Squeeze 6.0.7.
dpkg -l
well there will be A LOT of NOT installed packages.. why would you want to do that? btw, the command apt-cache pkgnames will provide you the list of ALL available packages in the repository added in your sources.list configuration
apt-get remove will remove the installed package, but you'll normally keep the configurations, which is the desired behaviour usually.
further info: http://www.cyberciti.biz/howto/question/linux/dpkg-cheat-sheet.php

sql.h header file missing though unixODBC is installed

I am on an up-to-date Ubuntu 12.04 system. I have unixodbc (v2.2.14 from ubuntu repos), MySQL and its relevant drivers installed. Also connected to a valid DSN. Verified by issuing isql DBName UName passwd.
I am trying to compile a C application that interacts with the database using ODBC. Almost everywhere I searched seemed to indicate that I should have "sql.h" installed somewhere. A find / -iname sql.h -print showed I don't have it.
So my question is: where is it? Did something go wrong with the install (no errors were reported though)? And what steps do you recommend? Reinstallation? Compilation from source code (the latest version?)?
You need to install the unixodbc-dev package to get the development header files.
sudo apt-get install unixodbc-dev
The -dev packages contain the require header files required to compile and build programs using these headers to make calls to the library. The library files themselves would be part of the regular package i.e. unixodbc in your case.
If you want to know which package provides a certain file, you could use apt-file:
sudo apt-file update
sudo apt-file find sql.h

Resources