Script to check if some program is already installed
How can I create a bash script that checks if a program is already installed, and if it isn't, installs it?
Thanks for your help.
Here's the code I have so far:
#/bin/bash
PS3="choose an option"
select opcion in "Installing_Youtube" "exit"
do
case $opcion in
"Installing_Youtube")
youtube-dl > /usr/bin
if [ $? -eq 127 ] ; then
echo "installing youtube"
apt-get update
apt-get install youtube-dl
mkdir Videos
else
echo "Youtube already installed"
fi
;;
"exit")
exit
apt bash scripts
New contributor
add a comment |
How can I create a bash script that checks if a program is already installed, and if it isn't, installs it?
Thanks for your help.
Here's the code I have so far:
#/bin/bash
PS3="choose an option"
select opcion in "Installing_Youtube" "exit"
do
case $opcion in
"Installing_Youtube")
youtube-dl > /usr/bin
if [ $? -eq 127 ] ; then
echo "installing youtube"
apt-get update
apt-get install youtube-dl
mkdir Videos
else
echo "Youtube already installed"
fi
;;
"exit")
exit
apt bash scripts
New contributor
9
Do you intend to overwrite/usr/bin
?
– D. Ben Knoble
Dec 23 at 0:51
1
Are you differentiating between package names, and executable filenames? Or want to check both? Only George's answer currently checks for executables
– Xen2050
Dec 23 at 3:27
Why do you want to check it? What's the purposed use of this script?
– Braiam
2 days ago
add a comment |
How can I create a bash script that checks if a program is already installed, and if it isn't, installs it?
Thanks for your help.
Here's the code I have so far:
#/bin/bash
PS3="choose an option"
select opcion in "Installing_Youtube" "exit"
do
case $opcion in
"Installing_Youtube")
youtube-dl > /usr/bin
if [ $? -eq 127 ] ; then
echo "installing youtube"
apt-get update
apt-get install youtube-dl
mkdir Videos
else
echo "Youtube already installed"
fi
;;
"exit")
exit
apt bash scripts
New contributor
How can I create a bash script that checks if a program is already installed, and if it isn't, installs it?
Thanks for your help.
Here's the code I have so far:
#/bin/bash
PS3="choose an option"
select opcion in "Installing_Youtube" "exit"
do
case $opcion in
"Installing_Youtube")
youtube-dl > /usr/bin
if [ $? -eq 127 ] ; then
echo "installing youtube"
apt-get update
apt-get install youtube-dl
mkdir Videos
else
echo "Youtube already installed"
fi
;;
"exit")
exit
apt bash scripts
apt bash scripts
New contributor
New contributor
edited Dec 22 at 22:01
Elder Geek
26.4k952124
26.4k952124
New contributor
asked Dec 22 at 19:30
GUILLEM NAVALON BABIA
437
437
New contributor
New contributor
9
Do you intend to overwrite/usr/bin
?
– D. Ben Knoble
Dec 23 at 0:51
1
Are you differentiating between package names, and executable filenames? Or want to check both? Only George's answer currently checks for executables
– Xen2050
Dec 23 at 3:27
Why do you want to check it? What's the purposed use of this script?
– Braiam
2 days ago
add a comment |
9
Do you intend to overwrite/usr/bin
?
– D. Ben Knoble
Dec 23 at 0:51
1
Are you differentiating between package names, and executable filenames? Or want to check both? Only George's answer currently checks for executables
– Xen2050
Dec 23 at 3:27
Why do you want to check it? What's the purposed use of this script?
– Braiam
2 days ago
9
9
Do you intend to overwrite
/usr/bin
?– D. Ben Knoble
Dec 23 at 0:51
Do you intend to overwrite
/usr/bin
?– D. Ben Knoble
Dec 23 at 0:51
1
1
Are you differentiating between package names, and executable filenames? Or want to check both? Only George's answer currently checks for executables
– Xen2050
Dec 23 at 3:27
Are you differentiating between package names, and executable filenames? Or want to check both? Only George's answer currently checks for executables
– Xen2050
Dec 23 at 3:27
Why do you want to check it? What's the purposed use of this script?
– Braiam
2 days ago
Why do you want to check it? What's the purposed use of this script?
– Braiam
2 days ago
add a comment |
5 Answers
5
active
oldest
votes
you can do this:
dpkg -s <packagename> &> /dev/null
then check exit status.only if the exit status of the above command was equal to 0
then the package installed.
so:
#!/bin/bash
echo "enter your package name"
read name
dpkg -s $name &> /dev/null
if [ $? -ne 0 ]
then
echo "not installed"
sudo apt-get update
sudo apt-get install $name
else
echo "installed"
fi
Really thank's! It works :D
– GUILLEM NAVALON BABIA
Dec 22 at 21:13
Except it doesn't? What happened to the line withsudo apt install $name
? The command needs to go on the next line... Otherwise, nice work...
– Zanna
Dec 22 at 21:30
3
Note that software could be installed in a variety of ways, anddpkg
is only relevant for installed debian packages. In OP's particular case,youtube-dl
for instance could be also installed via python's package managerpip
– Sergiy Kolodyazhnyy
Dec 22 at 21:36
2
Why notif dpkg -s “$name” &> /dev/null ; then
? Same effect, cleaner/clearer imo.
– D. Ben Knoble
Dec 23 at 0:52
indeed, checking the exit status is exactly whatif
does...
– Zanna
2 days ago
|
show 1 more comment
Here's a function I wrote for the purpose that I use in my scripts. It checks to see if the required package is installed and if not, prompts the user to install it. It requires a package name as a parameter. If you don't know the name of the package a required program belongs to you can look it up. Information on that available here.
function getreq {
dpkg-query --show "$1"
if [ "$?" = "0" ];
then
echo "$1" found
else
echo "$1" not found. Please approve installation.
sudo apt-get install "$1"
if [ "$?" = "0" ];
then echo "$1" installed successfully.
fi
fi
}
add a comment |
This line of command will check using the which
program and will return 0
if installed and 1
if not:
which apache | grep -o apache > /dev/null && echo 0 || echo 1
Of course you will use it in this manner in your script:
which "$1" | grep -o "$1" > /dev/null && echo "Installed!" || echo "Not Installed!"
A simple usage would be:
#!/usr/bin/env bash
set -e
function checker() {
which "$1" | grep -o "$1" > /dev/null && return 0 || return 1
}
if checker "$1" == 0 ; then echo "Installed"; else echo "Not Installed!"; fi
Note several things:
- You will have to deal with dependenciy issues while installing
- To avoid interaaction with script during install see here for examples.
- You can catch the return values from that function an use it to decide whether to install or not.
which
is super non-portable. I frequently usecommand -v
instead, but it depends heavily on the type of name you’re looking for (alias, function, executable, &c.)
– D. Ben Knoble
Dec 23 at 0:54
Super non-portable for a question that is for an Ubuntu machine? This is isn'tUnix & Linux
site! If i were answering it onUnix & Linux
site that would be a different matter!
– George Udosen
2 days ago
add a comment |
Why do you want to check it in the first place? Unless you have a good reason for it, don't do it, just apt-get install package
over. If it's already installed it will be updated if there is a newer version available, if it is installed and it is up to date, nothing will happen. In case you have some configuration that needs to be applied, there are other options, like building an configuration package which depends on the package or using configuration management software like ansible.
New contributor
add a comment |
One easy way to check for installed packages using apt-mark
:
apt-mark showinstall
will list all packages marked install (already installed, or queued for installation). After that, it's a simple matter of grepping the package(s) you care about.
Example: apt-mark showinstall | grep -q "^$PACKAGE_NAME$" && echo "installed" || echo "not"
You're on the right track! Just change it to this to eliminate the false positives: apt-mark showinstall | grep -q "^$PACKAGE_NAME$" && echo "installed" || echo "not"
– Eric Mintz
Dec 22 at 21:13
@EricMintz - thanks for the improvement! Edited.
– user535733
Dec 23 at 1:31
add a comment |
Your Answer
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "89"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
GUILLEM NAVALON BABIA is a new contributor. Be nice, and check out our Code of Conduct.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2faskubuntu.com%2fquestions%2f1103860%2fscript-to-check-if-some-program-is-already-installed%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
5 Answers
5
active
oldest
votes
5 Answers
5
active
oldest
votes
active
oldest
votes
active
oldest
votes
you can do this:
dpkg -s <packagename> &> /dev/null
then check exit status.only if the exit status of the above command was equal to 0
then the package installed.
so:
#!/bin/bash
echo "enter your package name"
read name
dpkg -s $name &> /dev/null
if [ $? -ne 0 ]
then
echo "not installed"
sudo apt-get update
sudo apt-get install $name
else
echo "installed"
fi
Really thank's! It works :D
– GUILLEM NAVALON BABIA
Dec 22 at 21:13
Except it doesn't? What happened to the line withsudo apt install $name
? The command needs to go on the next line... Otherwise, nice work...
– Zanna
Dec 22 at 21:30
3
Note that software could be installed in a variety of ways, anddpkg
is only relevant for installed debian packages. In OP's particular case,youtube-dl
for instance could be also installed via python's package managerpip
– Sergiy Kolodyazhnyy
Dec 22 at 21:36
2
Why notif dpkg -s “$name” &> /dev/null ; then
? Same effect, cleaner/clearer imo.
– D. Ben Knoble
Dec 23 at 0:52
indeed, checking the exit status is exactly whatif
does...
– Zanna
2 days ago
|
show 1 more comment
you can do this:
dpkg -s <packagename> &> /dev/null
then check exit status.only if the exit status of the above command was equal to 0
then the package installed.
so:
#!/bin/bash
echo "enter your package name"
read name
dpkg -s $name &> /dev/null
if [ $? -ne 0 ]
then
echo "not installed"
sudo apt-get update
sudo apt-get install $name
else
echo "installed"
fi
Really thank's! It works :D
– GUILLEM NAVALON BABIA
Dec 22 at 21:13
Except it doesn't? What happened to the line withsudo apt install $name
? The command needs to go on the next line... Otherwise, nice work...
– Zanna
Dec 22 at 21:30
3
Note that software could be installed in a variety of ways, anddpkg
is only relevant for installed debian packages. In OP's particular case,youtube-dl
for instance could be also installed via python's package managerpip
– Sergiy Kolodyazhnyy
Dec 22 at 21:36
2
Why notif dpkg -s “$name” &> /dev/null ; then
? Same effect, cleaner/clearer imo.
– D. Ben Knoble
Dec 23 at 0:52
indeed, checking the exit status is exactly whatif
does...
– Zanna
2 days ago
|
show 1 more comment
you can do this:
dpkg -s <packagename> &> /dev/null
then check exit status.only if the exit status of the above command was equal to 0
then the package installed.
so:
#!/bin/bash
echo "enter your package name"
read name
dpkg -s $name &> /dev/null
if [ $? -ne 0 ]
then
echo "not installed"
sudo apt-get update
sudo apt-get install $name
else
echo "installed"
fi
you can do this:
dpkg -s <packagename> &> /dev/null
then check exit status.only if the exit status of the above command was equal to 0
then the package installed.
so:
#!/bin/bash
echo "enter your package name"
read name
dpkg -s $name &> /dev/null
if [ $? -ne 0 ]
then
echo "not installed"
sudo apt-get update
sudo apt-get install $name
else
echo "installed"
fi
edited 2 days ago
GUILLEM NAVALON BABIA
437
437
answered Dec 22 at 20:25
Hossein
914
914
Really thank's! It works :D
– GUILLEM NAVALON BABIA
Dec 22 at 21:13
Except it doesn't? What happened to the line withsudo apt install $name
? The command needs to go on the next line... Otherwise, nice work...
– Zanna
Dec 22 at 21:30
3
Note that software could be installed in a variety of ways, anddpkg
is only relevant for installed debian packages. In OP's particular case,youtube-dl
for instance could be also installed via python's package managerpip
– Sergiy Kolodyazhnyy
Dec 22 at 21:36
2
Why notif dpkg -s “$name” &> /dev/null ; then
? Same effect, cleaner/clearer imo.
– D. Ben Knoble
Dec 23 at 0:52
indeed, checking the exit status is exactly whatif
does...
– Zanna
2 days ago
|
show 1 more comment
Really thank's! It works :D
– GUILLEM NAVALON BABIA
Dec 22 at 21:13
Except it doesn't? What happened to the line withsudo apt install $name
? The command needs to go on the next line... Otherwise, nice work...
– Zanna
Dec 22 at 21:30
3
Note that software could be installed in a variety of ways, anddpkg
is only relevant for installed debian packages. In OP's particular case,youtube-dl
for instance could be also installed via python's package managerpip
– Sergiy Kolodyazhnyy
Dec 22 at 21:36
2
Why notif dpkg -s “$name” &> /dev/null ; then
? Same effect, cleaner/clearer imo.
– D. Ben Knoble
Dec 23 at 0:52
indeed, checking the exit status is exactly whatif
does...
– Zanna
2 days ago
Really thank's! It works :D
– GUILLEM NAVALON BABIA
Dec 22 at 21:13
Really thank's! It works :D
– GUILLEM NAVALON BABIA
Dec 22 at 21:13
Except it doesn't? What happened to the line with
sudo apt install $name
? The command needs to go on the next line... Otherwise, nice work...– Zanna
Dec 22 at 21:30
Except it doesn't? What happened to the line with
sudo apt install $name
? The command needs to go on the next line... Otherwise, nice work...– Zanna
Dec 22 at 21:30
3
3
Note that software could be installed in a variety of ways, and
dpkg
is only relevant for installed debian packages. In OP's particular case, youtube-dl
for instance could be also installed via python's package manager pip
– Sergiy Kolodyazhnyy
Dec 22 at 21:36
Note that software could be installed in a variety of ways, and
dpkg
is only relevant for installed debian packages. In OP's particular case, youtube-dl
for instance could be also installed via python's package manager pip
– Sergiy Kolodyazhnyy
Dec 22 at 21:36
2
2
Why not
if dpkg -s “$name” &> /dev/null ; then
? Same effect, cleaner/clearer imo.– D. Ben Knoble
Dec 23 at 0:52
Why not
if dpkg -s “$name” &> /dev/null ; then
? Same effect, cleaner/clearer imo.– D. Ben Knoble
Dec 23 at 0:52
indeed, checking the exit status is exactly what
if
does...– Zanna
2 days ago
indeed, checking the exit status is exactly what
if
does...– Zanna
2 days ago
|
show 1 more comment
Here's a function I wrote for the purpose that I use in my scripts. It checks to see if the required package is installed and if not, prompts the user to install it. It requires a package name as a parameter. If you don't know the name of the package a required program belongs to you can look it up. Information on that available here.
function getreq {
dpkg-query --show "$1"
if [ "$?" = "0" ];
then
echo "$1" found
else
echo "$1" not found. Please approve installation.
sudo apt-get install "$1"
if [ "$?" = "0" ];
then echo "$1" installed successfully.
fi
fi
}
add a comment |
Here's a function I wrote for the purpose that I use in my scripts. It checks to see if the required package is installed and if not, prompts the user to install it. It requires a package name as a parameter. If you don't know the name of the package a required program belongs to you can look it up. Information on that available here.
function getreq {
dpkg-query --show "$1"
if [ "$?" = "0" ];
then
echo "$1" found
else
echo "$1" not found. Please approve installation.
sudo apt-get install "$1"
if [ "$?" = "0" ];
then echo "$1" installed successfully.
fi
fi
}
add a comment |
Here's a function I wrote for the purpose that I use in my scripts. It checks to see if the required package is installed and if not, prompts the user to install it. It requires a package name as a parameter. If you don't know the name of the package a required program belongs to you can look it up. Information on that available here.
function getreq {
dpkg-query --show "$1"
if [ "$?" = "0" ];
then
echo "$1" found
else
echo "$1" not found. Please approve installation.
sudo apt-get install "$1"
if [ "$?" = "0" ];
then echo "$1" installed successfully.
fi
fi
}
Here's a function I wrote for the purpose that I use in my scripts. It checks to see if the required package is installed and if not, prompts the user to install it. It requires a package name as a parameter. If you don't know the name of the package a required program belongs to you can look it up. Information on that available here.
function getreq {
dpkg-query --show "$1"
if [ "$?" = "0" ];
then
echo "$1" found
else
echo "$1" not found. Please approve installation.
sudo apt-get install "$1"
if [ "$?" = "0" ];
then echo "$1" installed successfully.
fi
fi
}
edited 2 days ago
answered Dec 22 at 21:31
Elder Geek
26.4k952124
26.4k952124
add a comment |
add a comment |
This line of command will check using the which
program and will return 0
if installed and 1
if not:
which apache | grep -o apache > /dev/null && echo 0 || echo 1
Of course you will use it in this manner in your script:
which "$1" | grep -o "$1" > /dev/null && echo "Installed!" || echo "Not Installed!"
A simple usage would be:
#!/usr/bin/env bash
set -e
function checker() {
which "$1" | grep -o "$1" > /dev/null && return 0 || return 1
}
if checker "$1" == 0 ; then echo "Installed"; else echo "Not Installed!"; fi
Note several things:
- You will have to deal with dependenciy issues while installing
- To avoid interaaction with script during install see here for examples.
- You can catch the return values from that function an use it to decide whether to install or not.
which
is super non-portable. I frequently usecommand -v
instead, but it depends heavily on the type of name you’re looking for (alias, function, executable, &c.)
– D. Ben Knoble
Dec 23 at 0:54
Super non-portable for a question that is for an Ubuntu machine? This is isn'tUnix & Linux
site! If i were answering it onUnix & Linux
site that would be a different matter!
– George Udosen
2 days ago
add a comment |
This line of command will check using the which
program and will return 0
if installed and 1
if not:
which apache | grep -o apache > /dev/null && echo 0 || echo 1
Of course you will use it in this manner in your script:
which "$1" | grep -o "$1" > /dev/null && echo "Installed!" || echo "Not Installed!"
A simple usage would be:
#!/usr/bin/env bash
set -e
function checker() {
which "$1" | grep -o "$1" > /dev/null && return 0 || return 1
}
if checker "$1" == 0 ; then echo "Installed"; else echo "Not Installed!"; fi
Note several things:
- You will have to deal with dependenciy issues while installing
- To avoid interaaction with script during install see here for examples.
- You can catch the return values from that function an use it to decide whether to install or not.
which
is super non-portable. I frequently usecommand -v
instead, but it depends heavily on the type of name you’re looking for (alias, function, executable, &c.)
– D. Ben Knoble
Dec 23 at 0:54
Super non-portable for a question that is for an Ubuntu machine? This is isn'tUnix & Linux
site! If i were answering it onUnix & Linux
site that would be a different matter!
– George Udosen
2 days ago
add a comment |
This line of command will check using the which
program and will return 0
if installed and 1
if not:
which apache | grep -o apache > /dev/null && echo 0 || echo 1
Of course you will use it in this manner in your script:
which "$1" | grep -o "$1" > /dev/null && echo "Installed!" || echo "Not Installed!"
A simple usage would be:
#!/usr/bin/env bash
set -e
function checker() {
which "$1" | grep -o "$1" > /dev/null && return 0 || return 1
}
if checker "$1" == 0 ; then echo "Installed"; else echo "Not Installed!"; fi
Note several things:
- You will have to deal with dependenciy issues while installing
- To avoid interaaction with script during install see here for examples.
- You can catch the return values from that function an use it to decide whether to install or not.
This line of command will check using the which
program and will return 0
if installed and 1
if not:
which apache | grep -o apache > /dev/null && echo 0 || echo 1
Of course you will use it in this manner in your script:
which "$1" | grep -o "$1" > /dev/null && echo "Installed!" || echo "Not Installed!"
A simple usage would be:
#!/usr/bin/env bash
set -e
function checker() {
which "$1" | grep -o "$1" > /dev/null && return 0 || return 1
}
if checker "$1" == 0 ; then echo "Installed"; else echo "Not Installed!"; fi
Note several things:
- You will have to deal with dependenciy issues while installing
- To avoid interaaction with script during install see here for examples.
- You can catch the return values from that function an use it to decide whether to install or not.
edited Dec 22 at 20:49
answered Dec 22 at 20:27
George Udosen
19.4k94266
19.4k94266
which
is super non-portable. I frequently usecommand -v
instead, but it depends heavily on the type of name you’re looking for (alias, function, executable, &c.)
– D. Ben Knoble
Dec 23 at 0:54
Super non-portable for a question that is for an Ubuntu machine? This is isn'tUnix & Linux
site! If i were answering it onUnix & Linux
site that would be a different matter!
– George Udosen
2 days ago
add a comment |
which
is super non-portable. I frequently usecommand -v
instead, but it depends heavily on the type of name you’re looking for (alias, function, executable, &c.)
– D. Ben Knoble
Dec 23 at 0:54
Super non-portable for a question that is for an Ubuntu machine? This is isn'tUnix & Linux
site! If i were answering it onUnix & Linux
site that would be a different matter!
– George Udosen
2 days ago
which
is super non-portable. I frequently use command -v
instead, but it depends heavily on the type of name you’re looking for (alias, function, executable, &c.)– D. Ben Knoble
Dec 23 at 0:54
which
is super non-portable. I frequently use command -v
instead, but it depends heavily on the type of name you’re looking for (alias, function, executable, &c.)– D. Ben Knoble
Dec 23 at 0:54
Super non-portable for a question that is for an Ubuntu machine? This is isn't
Unix & Linux
site! If i were answering it on Unix & Linux
site that would be a different matter!– George Udosen
2 days ago
Super non-portable for a question that is for an Ubuntu machine? This is isn't
Unix & Linux
site! If i were answering it on Unix & Linux
site that would be a different matter!– George Udosen
2 days ago
add a comment |
Why do you want to check it in the first place? Unless you have a good reason for it, don't do it, just apt-get install package
over. If it's already installed it will be updated if there is a newer version available, if it is installed and it is up to date, nothing will happen. In case you have some configuration that needs to be applied, there are other options, like building an configuration package which depends on the package or using configuration management software like ansible.
New contributor
add a comment |
Why do you want to check it in the first place? Unless you have a good reason for it, don't do it, just apt-get install package
over. If it's already installed it will be updated if there is a newer version available, if it is installed and it is up to date, nothing will happen. In case you have some configuration that needs to be applied, there are other options, like building an configuration package which depends on the package or using configuration management software like ansible.
New contributor
add a comment |
Why do you want to check it in the first place? Unless you have a good reason for it, don't do it, just apt-get install package
over. If it's already installed it will be updated if there is a newer version available, if it is installed and it is up to date, nothing will happen. In case you have some configuration that needs to be applied, there are other options, like building an configuration package which depends on the package or using configuration management software like ansible.
New contributor
Why do you want to check it in the first place? Unless you have a good reason for it, don't do it, just apt-get install package
over. If it's already installed it will be updated if there is a newer version available, if it is installed and it is up to date, nothing will happen. In case you have some configuration that needs to be applied, there are other options, like building an configuration package which depends on the package or using configuration management software like ansible.
New contributor
edited 2 days ago
Zanna
50k13131238
50k13131238
New contributor
answered Dec 23 at 3:16
user2567875
1311
1311
New contributor
New contributor
add a comment |
add a comment |
One easy way to check for installed packages using apt-mark
:
apt-mark showinstall
will list all packages marked install (already installed, or queued for installation). After that, it's a simple matter of grepping the package(s) you care about.
Example: apt-mark showinstall | grep -q "^$PACKAGE_NAME$" && echo "installed" || echo "not"
You're on the right track! Just change it to this to eliminate the false positives: apt-mark showinstall | grep -q "^$PACKAGE_NAME$" && echo "installed" || echo "not"
– Eric Mintz
Dec 22 at 21:13
@EricMintz - thanks for the improvement! Edited.
– user535733
Dec 23 at 1:31
add a comment |
One easy way to check for installed packages using apt-mark
:
apt-mark showinstall
will list all packages marked install (already installed, or queued for installation). After that, it's a simple matter of grepping the package(s) you care about.
Example: apt-mark showinstall | grep -q "^$PACKAGE_NAME$" && echo "installed" || echo "not"
You're on the right track! Just change it to this to eliminate the false positives: apt-mark showinstall | grep -q "^$PACKAGE_NAME$" && echo "installed" || echo "not"
– Eric Mintz
Dec 22 at 21:13
@EricMintz - thanks for the improvement! Edited.
– user535733
Dec 23 at 1:31
add a comment |
One easy way to check for installed packages using apt-mark
:
apt-mark showinstall
will list all packages marked install (already installed, or queued for installation). After that, it's a simple matter of grepping the package(s) you care about.
Example: apt-mark showinstall | grep -q "^$PACKAGE_NAME$" && echo "installed" || echo "not"
One easy way to check for installed packages using apt-mark
:
apt-mark showinstall
will list all packages marked install (already installed, or queued for installation). After that, it's a simple matter of grepping the package(s) you care about.
Example: apt-mark showinstall | grep -q "^$PACKAGE_NAME$" && echo "installed" || echo "not"
edited Dec 23 at 1:30
answered Dec 22 at 19:51
user535733
7,62722942
7,62722942
You're on the right track! Just change it to this to eliminate the false positives: apt-mark showinstall | grep -q "^$PACKAGE_NAME$" && echo "installed" || echo "not"
– Eric Mintz
Dec 22 at 21:13
@EricMintz - thanks for the improvement! Edited.
– user535733
Dec 23 at 1:31
add a comment |
You're on the right track! Just change it to this to eliminate the false positives: apt-mark showinstall | grep -q "^$PACKAGE_NAME$" && echo "installed" || echo "not"
– Eric Mintz
Dec 22 at 21:13
@EricMintz - thanks for the improvement! Edited.
– user535733
Dec 23 at 1:31
You're on the right track! Just change it to this to eliminate the false positives: apt-mark showinstall | grep -q "^$PACKAGE_NAME$" && echo "installed" || echo "not"
– Eric Mintz
Dec 22 at 21:13
You're on the right track! Just change it to this to eliminate the false positives: apt-mark showinstall | grep -q "^$PACKAGE_NAME$" && echo "installed" || echo "not"
– Eric Mintz
Dec 22 at 21:13
@EricMintz - thanks for the improvement! Edited.
– user535733
Dec 23 at 1:31
@EricMintz - thanks for the improvement! Edited.
– user535733
Dec 23 at 1:31
add a comment |
GUILLEM NAVALON BABIA is a new contributor. Be nice, and check out our Code of Conduct.
GUILLEM NAVALON BABIA is a new contributor. Be nice, and check out our Code of Conduct.
GUILLEM NAVALON BABIA is a new contributor. Be nice, and check out our Code of Conduct.
GUILLEM NAVALON BABIA is a new contributor. Be nice, and check out our Code of Conduct.
Thanks for contributing an answer to Ask Ubuntu!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2faskubuntu.com%2fquestions%2f1103860%2fscript-to-check-if-some-program-is-already-installed%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
9
Do you intend to overwrite
/usr/bin
?– D. Ben Knoble
Dec 23 at 0:51
1
Are you differentiating between package names, and executable filenames? Or want to check both? Only George's answer currently checks for executables
– Xen2050
Dec 23 at 3:27
Why do you want to check it? What's the purposed use of this script?
– Braiam
2 days ago