Как добавить tcpkill в мой пакет kubernetes - альпийские пакеты - PullRequest
1 голос
/ 02 марта 2020

Я пытаюсь установить / добавить tcpkill в мой модуль, но получаю сообщение об ошибке ниже. Даже обновление apk также не дает желаемых результатов.

$ kubectl exec -it mypod-v003-ab2cd /bin/sh -n mynamespace
/ # apk add tcpkill
ERROR: unsatisfiable constraints:
  tcpkill (missing):
    required by: world[tcpkill]
/ #
/ #
/ #
/ # apk add dsniff
ERROR: unsatisfiable constraints:
  dsniff (missing):
    required by: world[dsniff]
/ #
/ #
/ # apk update
fetch http://dl-cdn.alpinelinux.org/alpine/v3.9/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.9/community/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/edge/testing/x86_64/APKINDEX.tar.gz
v3.9.5-11-ge3b5031082 [http://dl-cdn.alpinelinux.org/alpine/v3.9/main]
v3.9.5-3-gfaabae9a55 [http://dl-cdn.alpinelinux.org/alpine/v3.9/community]
v20200122-2407-g64931a5538 [http://dl-cdn.alpinelinux.org/alpine/edge/testing]
OK: 13818 distinct packages available

В Интернете я обнаружил, что могу добавить пакет (https://pkgs.alpinelinux.org/contents?file=tcpkill&path=&name=bash-completion&branch=v3.9&repo=main&arch=x86_64) из alpine linux, но не уверен, каким образом. Может кто-нибудь, пожалуйста, помогите?

Также, если я go в / usr / share / bash -completion / дополнения / я могу увидеть там tcpkill.

/ # ls -l /usr/share/bash-completion/completions/tc*
-rw-r--r--    1 root     root          1011 Dec  4  2018 /usr/share/bash-completion/completions/tcpdump
-rw-r--r--    1 root     root           441 Dec  4  2018 /usr/share/bash-completion/completions/tcpkill
-rw-r--r--    1 root     root           434 Dec  4  2018 /usr/share/bash-completion/completions/tcpnice
/ #

1 Ответ

0 голосов
/ 02 марта 2020

Эта ссылка говорит вам, что в пакете bash -completion есть файл с именем tcpkill. Этот файл является индексным файлом для bash -completion для автоматического завершения команд tcpkill.

tcpkill на самом деле не доступен для Alpine, поэтому, если вам это нужно, вы должны скомпилировать его из исходного кода.

Вы можете удивиться, почему bash -completion включает ссылки на tcpkill. Это происходит потому, что он был включен в пакет с исходным кодом.

Чтобы узнать, как его скомпилировать, взгляните на это руководство.

Я также могу предложить вам использовать другое изображение в качестве Ubuntu. Используя его, вы можете просто запустить apt-get install dsniff и tcpkill будет доступен для использования.

Если это решение подходит вам, возможно, вы захотите создать свой собственный docker образ, включающий эти пакеты, поэтому вам не нужно устанавливать его каждый раз, когда создается ваш модуль. Для этого я рекомендую вам этот с практическими рекомендациями.

...