From mboxrd@z Thu Jan 1 00:00:00 1970 From: ludo@gnu.org (Ludovic =?utf-8?Q?Court=C3=A8s?=) Subject: =?utf-8?B?4oCYZ3VpeCBjb3B54oCZ?= Date: Sat, 31 Dec 2016 18:40:15 +0100 Message-ID: <87eg0o2e0w.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:52145) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cNNdl-0007o6-Kr for guix-devel@gnu.org; Sat, 31 Dec 2016 12:40:22 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cNNdi-0003dC-AI for guix-devel@gnu.org; Sat, 31 Dec 2016 12:40:21 -0500 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:48528) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cNNdi-0003d8-6l for guix-devel@gnu.org; Sat, 31 Dec 2016 12:40:18 -0500 Received: from reverse-83.fdn.fr ([80.67.176.83]:54236 helo=pluto) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1cNNdh-0006H5-Gw for guix-devel@gnu.org; Sat, 31 Dec 2016 12:40:17 -0500 List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: "Guix-devel" To: guix-devel Hello Guix! :-) I=E2=80=99m pleased to announce the last(?) feature of the year: =E2=80=98g= uix copy=E2=80=99! It copies store items over SSH, pretty much like =E2=80=98guix offload=E2= =80=99 already does; documentation below. Currently there=E2=80=99s no progress report and error reporting is subopti= mal, but I find it useful already. Feedback welcome! Ludo=E2=80=99. 5.13 Invoking =E2=80=98guix copy=E2=80=99 =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D The =E2=80=98guix copy=E2=80=99 command copies items from the store of one = machine to that of another machine over a secure shell (SSH) connection(1). For example, the following command copies the =E2=80=98coreutils=E2=80=99 packa= ge, the user=E2=80=99s profile, and all their dependencies over to HOST, logged in = as USER: guix copy --to=3DUSER@HOST \ coreutils `readlink -f ~/.guix-profile` If some of the items to be copied are already present on HOST, they are not actually sent. The command below retrieves =E2=80=98libreoffice=E2=80=99 and =E2=80=98g= imp=E2=80=99 from HOST, assuming they are available there: guix copy --from=3DHOST libreoffice gimp The SSH connection is established using the Guile-SSH client, which is compatible with OpenSSH: it honors =E2=80=98~/.ssh/known_hosts=E2=80=99 = and =E2=80=98~/.ssh/config=E2=80=99, and uses the SSH agent for authentication. The key used to sign items that are sent must be accepted by the remote machine. Likewise, the key used by the remote machine to sign items you are retrieving must be in =E2=80=98/etc/guix/acl=E2=80=99 so it i= s accepted by your own daemon. *Note Invoking guix archive::, for more information about store item authentication. The general syntax is: guix copy [--to=3DSPEC|--from=3DSPEC] ITEMS... You must always specify one of the following options: =E2=80=98--to=3DSPEC=E2=80=99 =E2=80=98--from=3DSPEC=E2=80=99 Specify the host to send to or receive from. SPEC must be an SSH spec such as =E2=80=98example.org=E2=80=99, =E2=80=98charlie@example.o= rg=E2=80=99, or =E2=80=98charlie@example.org:2222=E2=80=99. The ITEMS can be either package names, such as =E2=80=98gimp=E2=80=99, o= r store items, such as =E2=80=98/gnu/store/...-idutils-4.6=E2=80=99. When specifying the name of a package to send, it is first built if needed, unless =E2=80=98--dry-run=E2=80=99 was specified. Common build opt= ions are supported (*note Common Build Options::). ---------- Footnotes ---------- (1) This command is available only when Guile-SSH was found. *Note Requirements::, for details.