Specifically I'm trying to find out what pakage I have to install in order to get disown command in docker based on Alpine Linux? Moreover it would be nice if someone could enlight me how in general I should seek for missing commands (and in what package they are) so I don't have to come here with every single command.
Asked
Active
Viewed 1,249 times
2
abc
- 123
- 4
-
Your title question is a duplicate of [How to search for a file in apk packages](http://unix.stackexchange.com/questions/307167/how-to-search-for-a-file-in-apk-packages) – Gilles 'SO- stop being evil' Oct 11 '16 at 23:12
2 Answers
2
disown is a bash builtin (job control) just like switch, continue and history. Thus you won't find it in any package list, not just AplineLinux'.
I am not sure whether disown is a new feature (thus missing from older releases) or is a optional part.
Under Ubuntu bash is v4.3.46 and has it available, though.
For anything else, you'd go to the package contents search.
EnzoR
- 893
- 1
- 7
- 11
-
Not really useful. When I type `disown` in that page I get only linking to `disown` in context of `zsh` help/manual (https://pkgs.alpinelinux.org/contents?file=disown&path=&name=&branch=&repo=&arch=). I found also information (http://www.linuxquestions.org/questions/linux-server-73/disown-problem-sh-disown-not-found-611675/) that `disown` is part of `bash`. I tried to install `bash` and `zsh`, but no luck `disown` still missing... – abc Oct 11 '16 at 12:18
-
@abc Enzo's answer is correct. There is no standalone `disown` command, it wouldn't make sense since it acts on the running shell. You get a `disown` command if you're running ksh, bash or zsh. If `disown` isn't a supported command in your shell then you're running a different shell. What matters is the shell you're running, not other shells that may be also installed. – Gilles 'SO- stop being evil' Oct 11 '16 at 23:14
-
@Gilles Yes. It's after edit. Look into modification history to understand my first comment. Anyway I'm accepting it because after edit it solved my problem. I thought `disown` is a standalone command like for instance `cat`. – abc Oct 15 '16 at 14:44
0
If you want to use pkgs.alpinelinux.org in a scripted way, you can add html2text in you distribution (for Alpine: apk add html2text) and use this script I've done 10 min ago...:)
#!/bin/sh
file=$1
arch=${2:-x86_64}
branch=${3:-edge}
valid_branch="v3.3 v3.4 v3.5 v3.6 v3.7 v3.8 v3.9 v3.10 edge all"
valid_arch="armv7 s390x ppc64le armhf aarch64 x86 x86_64 all"
usage() {
echo -e "\nUsage: $0 <pattern> [arch] [branch]\n"
echo -e "\t<pattern>: Mandatory. Is the file you are searching. Supports wildcards (e.g. wge*) "
echo -e "\t[arch]: Optional (default: x86_64). Architecture. Valid values: $valid_arch"
echo -e "\t[branch]: Optional (default: edge). Alpine releases. Valid values: $valid_branch\n"
exit 1;
}
query() {
curl -s -d"$1" -H "application/x-www-form-urlencoded" -X GET https://pkgs.alpinelinux.org/contents | sed "s///\//g" | html2text -nobs -ascii | sed /^$/d | sed '1d' | awk /^File/,/*Copy*/ |grep -vE 'Privacy|Policy'
}
if ! [ $file ] ; then usage; fi
echo $valid_arch | grep -qi $arch || ( echo "Invalid arch. Valid values are: $valid_arch"; exit 1 )
echo $valid_branch | grep -qi $branch || ( echo "Invalid branch. Valid values are: $valid_branch"; exit 1 )
if [ $branch == "all" ]; then
if [ $arch == "all" ]; then
for b in $valid_branch; do
query "branch=$b&file=$file"
done
else
for b in $valid_branch; do
query "branch=$b&file=$file&arch=$arch"
done
fi
else
query "branch=$branch&file=$file&arch=$arch"
fi
UPDATE ON 2022-04-07
You can find this script at https://github.com/fcolista/apkfile
muru
- 69,900
- 13
- 192
- 292
Francesco Colista
- 1,347
- 10
- 21