apt-get install <foo>
に似たソフトウェアパッケージをインストールしたいのですが:
Sudo
なし、およびこの演習の目的は、私の continuous integration サーバーで独立したビルドを分離することです。
ソースからコンパイルするのは問題ありませんが、それが必要な場合は、可能な限り単純なアプローチを好むことは明らかです。前述のようにapt-get source --compile <foo>
を試しました here ですが、autoconfのようなパッケージでは動作しません。次のエラーが表示されます。
dpkg-checkbuilddeps: Unmet build dependencies: help2man
Help2manをローカルディレクトリにコンパイルしましたが、apt-getに通知する方法がわかりません。何か案は?
UPDATE:almostは https:// askubuntu.com/a/350/23678 。 chroot
の問題は、Sudoが必要なことです。 apt-get source
の問題は、依存関係を解決する方法がわからないことです。 chroot
は魅力的だと言わなければなりませんvery。 sudoを必要としない同等のコマンドはありますか?
Apt依存関係システムを混乱させるため、これは一般的に実行できません。
2つの解決策があります。
ソースパッケージをインストールし、ソースディレクトリに変更し、パッケージングシステムに関係なく、パッケージを構成して、選択したディレクトリに手動でインストールします。
apt-get source <package>
これにはルートは必要ありません。パッケージソースをダウンロードし、現在のディレクトリ内のディレクトリに展開します。その後、そのディレクトリに変更したり、ソースを変更したり、別のターゲットにインストールを設定したりできます。
ただし、プログラムのインストール先ディレクトリの設定は、特定のプログラムによって異なります。多くのプログラムは、./configure --prefix localdir
を使用して、インストール先をlocaldirに設定します。しかし、これは常にそうとは限りません。
パッケージをインストールするchroot環境を作成します。
debootstrap precise myfancyinstall
これで、myfancyinstall /ディレクトリーにダミーのインストールが作成されました。
chroot myfancyinstall
Chrootケージ内でapt-get installを使用して、必要なものをインストールできます。
bashシェルを使用し、「package.deb」ファイルを取得します(パック名が「package」であると仮定)、次のコマンドを実行して目的を達成できます-ホームディレクトリが同じように処理されるようにパッケージをインストールします「通常のインストールでは処理されます。
これはコマンドです:
apt-get download package; dpkg -i --force-not-root --root=$HOME package.deb
$ HOME/var/lib/dpkg/lockが見つからないなどのエラーが発生する可能性があるため、エラーから取得するすべての欠落ファイルを作成するだけで、インストールはSudoなしで機能するはずです。
「apt-get download」が機能しない場合は、「apt download」または「apitutde download package」を試すことができます。
どちらの方法も機能しない場合は、パッケージを手動で http://packages.ubuntu.com/ からダウンロードできます。
別の方法は、パラメーター$ HOMEを指定してchrootコマンドを実行し、上記と同じ方法で--root = $ HOMEなしでのみインストールすることです。このコマンドを実行すると、「/」が現在の$ HOMEであるシェルが表示されます。通常モードに戻るには、「終了」することを忘れないでください
幸運を。
ssh
アクセスはあるがapt-get
rootなどがない、または同様に制限されたシステムの共有Webホスティングを使用している場合は、次の方法が有効です。 uname -a
がSMP Debian 4.9.65-3+deb9u2~bpo8+1 (2017-01-05) x86_64 GNU/Linux
のようなものを返すシステムで私のために働いた
# examples tried on a shared hoster with ssh access but no apt-get no root etc.
# http://mirrors.kernel.org/ubuntu/pool/main/g/gawk/gawk_4.1.3+dfsg-0.1_AMD64.deb
# https://github.com/dvorka/hstr/releases/download/1.25/hstr_1.25-1_AMD64.deb
debURL="http://mirrors.kernel.org/ubuntu/pool/main/g/gawk/gawk_4.1.3+dfsg-0.1_AMD64.deb"
# get the filename only, remove all till last slash "/"
# see http://wiki.bash-hackers.org/syntax/pe#substring_removal
debFile=${debURL##*/}
# change to your desired directory for installation/unpacking; here: $HOME
cd $HOME
# get the .deb file (no dependencies checked or resolved here)
curl -OL $debURL
# unpack only the data part from the .deb file
# see https://en.wikipedia.org/wiki/Deb_%28file_format%29
ar p $debFile data.tar.xz | tar xJv --strip-components=2 -f -
rm -v $debFile # clean up
echo "Done unpacking $debFile into $(pwd)"